我正在练习我的初学者php技能,想知道为什么该脚本总是返回FALSE?
我究竟做错了什么?
$namefields = '/[a-zA-Z\s]/';
$value = 'john';
if (!filter_var($value,FILTER_VALIDATE_REGEXP,$namefields)){
$message = 'wrong';
echo $message;
}else{
$message = 'correct';
echo $message;
}
最佳答案
regexp应该在options数组中。
$string = "Match this string";
var_dump(
filter_var(
$string,
FILTER_VALIDATE_REGEXP,
array(
"options" => array("regexp"=>"/^M(.*)/")
)
)
); // <-- look here
另外,
$namefields = '/[a-zA-Z\s]/';
应该是
$namefields = '/[a-zA-Z\s]*/'; // alpha, space or empty string
或者
$namefields = '/[a-zA-Z\s]+/'; // alpha or spaces, at least 1 char
因为在第一个版本中,我认为您只能匹配单字符字符串
关于php - 使用FILTER_VALIDATE_REGEXP的filter_var,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10993451/