我正在以下列方式使用 ereg 来验证一个只能包含 0 到 9 数字的字段:
if(eregi("^([0-9])*$", $mynumber)) return true;
但是,字符串必须包含 8 到 10 个字符。是否可以改进相同的 ereg 用法来检查有效的字符串长度?
在此先感谢..所有 ereg 教程对我来说似乎都是繁体中文。:S
ereg*()
函数已弃用,并将在未来版本中删除:
if(preg_match("/^([0-9]){8,10}$/", $mynumber)) return true;
只需将*
量词替换为{8,10}
:
eregi("^[0-9]{8,10}$", $mynumber)
现在正则表达式仅在字符串包含 8 到 10 位数字时才匹配。
而且,顺便说一句:i
ineregi
是不区分大小写的。但是数字没有大小写。所以你可以ereg
改用。但是由于不推荐使用PHP 的 POSIX ERE 函数,而改用PHP 的 PCRE 函数,因此您应该preg_match
改用:
preg_match("/^[0-9]{8,10}$/", $mynumber)