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

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

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

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

Заранее спасибо ... мне кажется, что все уроки ereg являются традиционными китайскими. : S

Ответы [ 2 ]

4 голосов
/ 14 марта 2010

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

if(preg_match("/^([0-9]){8,10}$/", $mynumber)) return true;
1 голос
/ 14 марта 2010

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

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

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

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

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