PHP: Как использовать ereg для проверки входного текста И длины строки одновременно?

Я использую ereg следующим образом, чтобы проверить поле, которое может содержать только цифры от 0 до 9:

if(eregi("^([0-9])*$", $mynumber)) return true;

Однако строка должна содержать от 8 до 10 символов. Можно ли улучшить такое же использование ereg, чтобы проверить правильность длины строки?

Спасибо заранее.. все учебники по эрегу кажутся мне традиционным китайским.:S

2 ответа

Решение

ereg*() функции устарели и будут удалены в следующей версии:

if(preg_match("/^([0-9]){8,10}$/", $mynumber)) return true;

Просто замените * квантификатор с {8,10}:

eregi("^[0-9]{8,10}$", $mynumber)

Теперь регулярное выражение соответствует, только если строка состоит из 8-10 цифр.

И, кстати: i в eregi для нечувствительности к регистру. Но у цифр нет дела. Так что вы могли бы использовать ereg вместо. Но поскольку использование PHP-функций POSIX ERE устарело вместо PHP-функций PCRE, вам следует использовать preg_match вместо:

preg_match("/^[0-9]{8,10}$/", $mynumber)
Другие вопросы по тегам