我正在创建一个注册系统,需要使用REGEX检查名称/通行证等(并且更喜欢),到目前为止我所拥有的是:
//Check so numbers aren't first, such as 00foobar
preg_match('/^(?!\d)[a-z0-9]+$/iD',$usrname);
//Just simple check
preg_match('/^[a-zA-Z0-9]+$/',$psword);
但我必须在IF语句中做愚蠢的事情,如:
if strlen($psword) > 30 || if (strlen($psword) < 4) ....
我如何在我的两个原始正则表达式语句中强调长度检查?这会让我很开心..
答案 0 :(得分:18)
相同,但使用\ w和\ d表示单词和数字,但您可能还需要包含基本符号,例如%!?/ ... etc...
preg_match('/^[\w\d]{4,30}$/',$psword);
{n,v}
将验证之前的最小n和最大v元素。
就像A{2,3}
会验证AA
和AAA
一样。您可以查看there以获取更多参考资料
以同样的方式,如果你只想设置patern {n,}
的最小值就可以了。例如:
preg_match('/^[\w\d]{4,}$/',$psword);
答案 1 :(得分:4)
我认为这应该可以解决问题:
的preg_match( '/ ^ [A-ZA-Z0-9] {4,30} $ /',$ psword);