13

我正在创建一个需要使用 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) ....

我将如何在我的两个原始正则表达式语句中进行长度检查?这会让我很高兴..

4

2 回答 2

21

相同,但使用 \w 和 \d 表示单词和数字,但您可能还希望包含基本符号,例如%!?/ ... etc...

preg_match('/^[\w\d]{4,30}$/',$psword);

{n,v}验证之前的最小 n 和最大 v 元素。

likeA{2,3}将验证AAand AAA。您可以在那里查看更多参考资料

如果您只想设置模式的最小值,则以同样的方式{n,}进行。例如:

preg_match('/^[\w\d]{4,}$/',$psword);
于 2010-02-07T02:11:35.263 回答
5

我认为这应该可以解决问题:

preg_match('/^[a-zA-Z0-9]{4,30}$/',$psword);

于 2010-02-07T01:56:29.603 回答