Я пытаюсь проверить длину номера телефона, оставаясь в пределах диапазона. Скажем, не менее 9 символов, но не более 12, чтобы я мог получить международные телефонные номера.
Я попробовал несколько вещей, но ни одна из них не сработала.
Например, нижеприведенная опция правильно проверяет, что она не имеет буквы, однако не имеет значения длина введенного мною номера, я всегда получаю сообщение об ошибке: «Ваш номер телефона должен иметь 9-11 номеров», даже если я введу 9, 10 или 11 одиннадцатизначное число.
огромное спасибо
if (empty($_POST["cellphone"])) {
$cellphoneErr = "Cell Phone is required";
} else {
$cellphone = test_input($_POST["cellphone"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[0-9]*$/",$cellphone)) {
$cellphoneErr = "Only numbers allow";
}
elseif(strlen($_POST["cellphone"] < 9) || strlen($_POST["cellphone"] > 11)){
$cellphoneErr = "Your phone number needs to have 9-11 numbers";
}
}
использование preg_match()
с квантификатором {min,max}
:
if (!preg_match("/^[0-9]{9,11}$/",$cellphone)) {
$cellphoneErr = "Has to be 9 to 11 numbers.";
}
elseif(strlen($_POST["cellphone"] < 9) || strlen($_POST["cellphone"] > 11)){
Должно быть:
elseif(strlen($_POST["cellphone"]) < 9 || strlen($_POST["cellphone"]) > 11){
Ваша скобка неверна.