Здравствуйте.
Раньше для проверки введенного в поле формы телефона использовал:
if (!preg_match('/^(\s*)?(\+)?([- _():=+]?\d[- _():=+]?){10,14}(\s*)?$/', $phone)) {
echo "Телефон задан в неверном формате!";
}
Сейчас наткнулся на функцию filter_var. И собственно возник вопрос с фильтром
FILTER_VALIDATE_REGEXP
.
Для проверки телефона нет готового фильтра, соответственно пытаюсь указать третьим параметром регулярку и функция отрабатывает не не работает, выкидывает warning
) Warning: filter_var(): 'regexp' option missing in W:\Server\data\htdocs\virthosts\ajax\handler-form.php on line 17
Вот какие варианты передачи третьего аргумента я пробовал
1:
elseif (!filter_var($phone, FILTER_VALIDATE_REGEXP, '/^(\s*)?(\+)?([- _():=+]?\d[- _():=+]?){10,14}(\s*)?$/')) {
echo 'Телефон задан в неверном формате!';
}
2:
define('CHECK_NUMBER_PHONE', '/^(\s*)?(\+)?([- _():=+]?\d[- _():=+]?){10,14}(\s*)?$/');
elseif (!filter_var($phone, FILTER_VALIDATE_REGEXP, CHECK_NUMBER_PHONE)) {
echo 'Телефон задан в неверном формате!';
}
3:
$option = [
'options' => [
'regexp' => '/^(\s*)?(\+)?([- _():=+]?\d[- _():=+]?){10,14}(\s*)?$/'
]
];
elseif (!filter_var($phone, FILTER_VALIDATE_REGEXP, ['options'=>'regexp'])) {
echo 'Телефон задан в неверном формате!';
}
Подскажите, что я делаю не так? Хотелось бы полноценно перевести валидацию форм на эту функцию, только вот затык с фильтром FILTER_VALIDATE_REGEXP.