#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
.