Предупреждение: preg_match () : окончательный разделитель '/' не найден

когда эта функция была вызвана, она дала сообщение Warning: preg_match () [function.preg-match]: Без конечного разделителя '/'

это функция проверки буквенно-цифрового ввода

function CheckAlphanumeric($element,$minlength,$maxlength) { if (!preg_match ("/[^A-Za-z\s\0-9 - @ .]//", $element) && strlen($element)>=$minlength && strlen($element) <=$maxlength) { return TRUE; } else { return FALSE;} } 

Каковы ваши данные по этому предупреждению?

Вы хотите избежать последней косой черты (или удалить ее, не уверен, должно ли оно быть в этом регулярном выражении?). Кроме того, у вас есть обратная косая черта до 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; } 

Ну, это странное сообщение об ошибке для того, что у вас есть, но у вас есть два / в конце вашего регулярного выражения. У вас должен быть только один: "/[^A-Za-z\s\0-9 - @ .]/" Если вы хотите совместить литерал / когда вы используете его в качестве разделителя, вам нужно избежать его с помощью \ .