Я пытаюсь создать регулярное выражение для проверки значений представленных тегов для системы фолксономии свободной формы. Вот что у меня сейчас.
if (!preg_match('/([^-\\a-zA-Z0-9._@\'])+/',$proposedtag)) {
//true, good
return true;
} else {
//false, bad characters
return false;
}
Я хочу разрешить: дефис, обратную косую черту, косую черту, a-z, A-Z, 0-9, точку, подчеркивание, знак и знак одинарной кавычки и запретить все остальные.
Я почти уверен, что отрицательный класс персонажей - это то, что нужно ...
Однако мой код выше, кажется, разрешает другие символы (такие как +), и я не уверен почему.
Кроме того, в качестве идентификатора, я не уверен, что я не допускаю непреднамеренного внедрения SQL-инъекций. Любые советы?