Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 警告:preg_match()[function.preg match]:未找到结尾分隔符“/”_Php_Error Handling_Preg Match_Design Patterns_Validation - Fatal编程技术网

Php 警告:preg_match()[function.preg match]:未找到结尾分隔符“/”

Php 警告:preg_match()[function.preg match]:未找到结尾分隔符“/”,php,error-handling,preg-match,design-patterns,validation,Php,Error Handling,Preg Match,Design Patterns,Validation,当调用此函数时,它给出了消息 警告:preg_match[function.preg match]:无结尾分隔符“/” 这是检查字母数字输入的功能 function CheckAlphanumeric($element,$minlength,$maxlength) { if (!preg_match ("/[^A-Za-z\s\0-9 - @ .]//", $element) && strlen($element)>=$minlength && strle

当调用此函数时,它给出了消息 警告: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 - @ .]\//

另外,您知道可以使用[:alnum:]快捷方式吗

希望最终编辑:

我建议你首先也看看你的函数,它有点混乱。您基本上需要检查三个条件,1它是否通过正则表达式,2它是gte最小长度,3它是lte最大长度。由于这三个函数都返回布尔值或正确计算为布尔值的值,因此可以将函数简化如下:

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;
}

您将要转义最后一个正斜杠或删除它,但不确定它是否应该在该正则表达式中?。另外,在0之前有一个反斜杠,这也没有什么意义

# escape it if it's supposed to be in there.
/[^A-Za-z\s0-9 - @ .]\//

另外,您知道可以使用[:alnum:]快捷方式吗

希望最终编辑:

我建议你首先也看看你的函数,它有点混乱。您基本上需要检查三个条件,1它是否通过正则表达式,2它是gte最小长度,3它是lte最大长度。由于这三个函数都返回布尔值或正确计算为布尔值的值,因此可以将函数简化如下:

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-@.]/如果你想匹配一个文字/当你使用它作为你的分隔符时,你需要用\.

来转义它,这是一个奇怪的错误消息,但是在正则表达式的末尾有两个/。您应该只有一个:/[^A-Za-z\s\0-9-@.]/如果要匹配文字/将其用作分隔符时,您需要使用\.

来转义它。您是否尝试删除两个结束符/字符中的一个?@SurrelStreams我删除了,但仍收到了警告消息?您是否尝试删除了两个结束符/字符中的一个?@SurrelStreams我删除了,但仍收到了警告消息我想说,如果您需要查看分隔符,您应该考虑更改它:~[^A-Za-z\s\0-9-@.]/~@meze谢谢我试过了,它改为:找不到结尾分隔符“~”,我想说如果你需要一个分隔符,你应该考虑修改它:~[^A-Za-z\s\0-9-.]/~@meze谢谢我试过了,它改为:找不到结尾分隔符“~”
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;
}