проверка — проверка длины телефона с переполнением стека

Я пытаюсь проверить длину номера телефона, оставаясь в пределах диапазона. Скажем, не менее 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";
}
}

0

Решение

использование preg_match() с квантификатором {min,max}:

if (!preg_match("/^[0-9]{9,11}$/",$cellphone)) {
$cellphoneErr = "Has to be 9 to 11 numbers.";
}
1

Другие решения

elseif(strlen($_POST["cellphone"] < 9) || strlen($_POST["cellphone"] > 11)){

Должно быть:

elseif(strlen($_POST["cellphone"]) < 9 || strlen($_POST["cellphone"]) > 11){

Ваша скобка неверна.

0

По вопросам рекламы [email protected]