Поэтому я пытаюсь проверить номера телефонов с формой xxx-xxx-xxxx, где x – это цифра. У меня проблема: я могу ввести более 4 цифр для последней группы чисел. Кто-нибудь видит, что я делаю неправильно? Благодарю.
$telNumPattern = '/[0-9]{3}-[0-9]{3}-[0-9]{4}/'; //regular expression to match xxx-xxx-xxxx if(empty($_POST['telNum'])) { $errors['telNum'] = "*Your telephone number can't be empty"; } else if(!preg_match($telNumPattern, $_POST['telNum'])) { $errors['telNum'] = "*Your email must be in the form xxx-xxx-xxxx"; }
$telNumPattern = '/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/';
Используйте якоря для точного соответствия.
Попробуйте это:
$telNumPattern = '/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/'; //regular expression to match xxx-xxx-xxxx if(empty($_POST['telNum'])) { $errors['telNum'] = "*Your telephone number can't be empty"; } else if(!preg_match($telNumPattern, $_POST['telNum'])) { $errors['telNum'] = "*Your email must be in the form xxx-xxx-xxxx"; }