Как сделать проверку на введение символов?
Пользователь вводит значение, которое запрашивается в сообщении. Если ввел цифровое значение, то бот переходит на следующий этап. При попытке ввести текст, должно произойти информирование пользователя и откат на предыдущий пункт. Как это сделать? isalpha и isdigit пробовал, бот не обрабатывает условия.
Код
# Указываем возраст def start_age(message): global age age = bot.send_message(message.chat.id, 'Укажите возраст (лет)') bot.register_next_step_handler(age, save_weight) # Указываем вес def save_weight(message): global age global weight age = float(message.text) weight = bot.send_message(message.chat.id, 'Укажите вес (кг)') bot.register_next_step_handler(weight, save_growth) |
# Указываем возраст def start_age(message): global age age = bot.send_message(message.chat.id, 'Укажите возраст (лет)') bot.register_next_step_handler(age, save_weight) # Указываем вес def save_weight(message): global age global weight age = float(message.text) weight = bot.send_message(message.chat.id, 'Укажите вес (кг)') bot.register_next_step_handler(weight, save_growth)
Дополнительно:
когда я вижу global в боте для хранения состояний пользователя, я делаю /)_-)
try
except
вопрос закрыт!
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для проверки на введение символов в PHP вы можете использовать функцию preg_match(). Эта функция позволяет проверять строку на соответствие определенному шаблону с использованием регулярных выражений.
Пример использования функции preg_match() для проверки на введение только буквенных символов:
$input = "example"; if (preg_match("/^[A-Za-z]+$/", $input)) { echo "Строка содержит только буквенные символы"; } else { echo "Строка содержит другие символы кроме букв"; }
В данном примере регулярное выражение "/^[A-Za-z]+$/", означает следующее:
- "^" - начало строки
- "[A-Za-z]" - любая буквенная буква (верхнего или нижнего регистра)
- "+" - один или более раз
- "$" - конец строки
Таким образом, если в переменной $input содержатся только буквенные символы, то условие preg_match() вернет true и будет выведено сообщение "Строка содержит только буквенные символы". В противном случае будет выведено сообщение "Строка содержит другие символы кроме букв".
Вы можете изменить регулярное выражение в соответствии с вашими требованиями, чтобы проверять на другие типы символов, например цифры, специальные символы и т.д. Надеюсь, это поможет вам решить вашу проблему с проверкой на введение символов в PHP.