Вы захотите избежать последнего слеша (или удалить его, не уверенный, должен ли он быть в этом регулярном выражении?).Кроме того, у вас есть обратный слеш до 0, который на самом деле не имеет смысла.
# escape it if it's supposed to be in there.
/[^A-Za-z\s0-9 - @ .]\//
или
# use a different character as a delimiter
%[^A-Za-z\s0-9 - @ .]/%
или
# remove it if it's a typo!
/[^A-Za-z\s0-9 - @ .]/
Кроме того, сделалВы знаете, что можете использовать [:alnum:]
ярлык?( src )
# matches alpha numeric, "-", "@", and "."
/[[:alnum:]-@.]/
Надеюсь, окончательное редактирование:
Я бы посоветовал вам взглянуть на свою функцию в первую очередьСмущает.По сути, вы хотите проверить соответствие трем условиям: 1) проходит ли регулярное выражение, 2) является ли он минимальной длиной, и 3) является ли он максимальной длиной.Поскольку все эти три возвращают логические значения (или значения, которые правильно оцениваются как логические), вы можете упростить функцию следующим образом:
function CheckAlphanumeric($element,$minlength,$maxlength) {
// returns TRUE if it matches all conditions, FALSE if one fails.
return preg_match("/[[:alnum:]-@. ]/", $element) && strlen($element) >= $minlength && strlen($element) <= $maxlength;
}