私は初心者の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;
}
正規表現はオプション配列に含まれている必要があります。
$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
最初のバージョンでは、1文字の文字列のみに一致すると思います。