use*_*295 1 php validation error-handling design-patterns preg-match
调用此函数时,它给出了警告: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;}
}
Run Code Online (Sandbox Code Playgroud)
您对此警告有何看法?
你想要逃避最后一个正斜杠(或者删除它,不确定它是否应该在那个正则表达式中?).此外,你在0之前有一个反斜杠,这也没有任何意义.
# escape it if it's supposed to be in there.
/[^A-Za-z\s0-9 - @ .]\//
Run Code Online (Sandbox Code Playgroud)
要么
# use a different character as a delimiter
%[^A-Za-z\s0-9 - @ .]/%
Run Code Online (Sandbox Code Playgroud)
要么
# remove it if it's a typo!
/[^A-Za-z\s0-9 - @ .]/
Run Code Online (Sandbox Code Playgroud)
另外,你知道你可以使用[:alnum:]快捷方式吗?(src)
# matches alpha numeric, "-", "@", and "."
/[[:alnum:]-@.]/
Run Code Online (Sandbox Code Playgroud)
希望最终编辑:
我建议你先看看你的功能,这有点令人困惑.你基本上想要检查三个条件,1)它是否通过正则表达式,2)它是gte最小长度,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;
}
Run Code Online (Sandbox Code Playgroud)