проверьте, числовой ли php

#php #html #css

#php #HTML #css

Вопрос:

моя проблема в том, что у меня есть форма, которую я заполняю blabla, и после отправки мне нужно проверить, содержит ли переменная ‘$ number’ только 9 чисел. это означает, что если он содержит хотя бы 1 букву или имеет длину меньше или больше 9, он должен возвращать false, иначе он должен возвращать true;

это то, что я получил до сих пор:

 if (!is_numeric ($number) { 
//do
} else {
}
  

1-я проблема: Этот код должен обрабатывать только числовую часть, но это не так, он всегда возвращает false.
2-й: ребята, вы знаете какой-нибудь способ выполнить проверку только из 9 цифр?

спасибо и извините за мой плохой английский, не мой родной язык: P

Комментарии:

1. да, я это уже сделал, он выводит значение, которое я ввел в текстовое поле, поэтому я знаю, что переменная не пуста

Ответ №1:

Ваш номер может содержать нежелательные пробелы, из-за которых is_numeric() тест не работает должным образом, поэтому сделайте следующее: $number = trim($number); чтобы удалить их.

Тогда действительно, этот фрагмент хорош для проверки, является ли ваша переменная числом:

 if (!is_numeric ($number)) { 
//do
} else {
}
  

И для цифр числа выполните if инструкцию, чтобы увидеть, находится ли ваш номер между 100000000 и 999999999

Таким образом, полный код будет:

 $number = trim($number);
if (!is_numeric ($number)) { 
//do
} else {
     if ($number >= 100000000 amp;amp; $number <= 999999999) {
        // Everything is ok
     } else {

     }
}
  

Комментарии:

1. Отсутствует ) в конце if инструкции.

2. Пожалуйста, объясните, почему вы отвергаете меня за отсутствие )

3. Обычно люди голосуют с понижением, когда код терпит неудачу, что делает ответ неправильным.

4. Обычно люди достаточно умны, чтобы отличить неправильный код от опечатки

5. Может быть и так, но иногда люди здесь очень привередливы. Мой ответ был отклонен дважды без каких-либо объяснений, и он был правильным с самого начала. Репутация здесь в основном в любом случае бессмысленна, так что я бы не беспокоился об этом. 🙂

Ответ №2:

Не понял ваш вопрос полностью, потому что у вас родной язык: p, но я думаю, вы хотите этого:

 if (is_numeric($number) { 
   if(strlen($number) == 9){
       return true;
   } else {
       return false;
   }
} else {
   echo 'Not a number';
}
  

Ответ №3:

Проверьте, содержит ли он цифры, и проверьте, точно ли он содержит 9.

 $number = '123456789';
  
 if(!preg_match('/^d{9}$/', $number)) {
    echo 'not ok';
} else {
    echo 'ok';
}
  

Комментарии:

1. Почему бы просто не /^d{9}$/ ?

2. Синтаксическая ошибка — Вы пропускаете } перед else .