Я практикую свои навыки начинающего 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 = "Соответствует этой строке";
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
потому что с первой версией я думаю, что вы сопоставляете только односимвольные строки