我需要检查变量是否包含除 0-9 和“-”、“+”字符和“”(空格)以外的任何内容。
我写的 preg_match 不起作用。任何帮助将不胜感激。
<?php
$var="+91 9766554433";
if(preg_match('/[0-9 +\-]/i', $var))
echo $var;
?>
最佳答案
您必须将 *
作为量词添加到整个字符类并添加 anchors到正则表达式的开头和结尾: ^
和 $
表示从行首到行尾只匹配包含内部正则表达式的行。此外,i
修饰符是不必要的,因为在此正则表达式中不需要不区分大小写。
这应该可以完成工作。
if(!preg_match('/^[0-9 +-]*$/', $var)){
//variable contains char not allowed
}else{
//variable only contains allowed chars
}
关于PHP preg_match 只允许数字、空格 '+' 和 '-',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37098251/