我想验证用户名登录 - 它只能接受字母,数字和undescore,最多20个标志,这里是我的正则表达式:双预浸匹配登录验证
正则表达式:^[\w_]{4,20}$
working example at Rubular
它应该接受此登录:
login
login_login
_login
_87login
837420
login898
但是,当登录由只是在强调它应该返回false:
________
如何在一个preg中做到这一点?那是我的问题:)
我想验证用户名登录 - 它只能接受字母,数字和undescore,最多20个标志,这里是我的正则表达式:双预浸匹配登录验证
正则表达式:^[\w_]{4,20}$
working example at Rubular
它应该接受此登录:
login
login_login
_login
_87login
837420
login898
但是,当登录由只是在强调它应该返回false:
________
如何在一个preg中做到这一点?那是我的问题:)
/^(_?[a-z0-9-])+$/i
此接受由字母,数字,连字符和下划线的字符串,但不允许__
。另外请注意,这不检查长度,你将不得不使用strlen()
。它也不允许尾随下划线,但是你的规格没有说明这是有效的。
猜测哉!你能告诉我们一个有效用户名的标准吗? (另外,'[\ w_]'和'\ w'意思相同] – Ryan 2013-04-21 22:18:00
允许有多少个下划线?再加上if(preg_match('/ \ w {4,20} /',$ user)&&!preg_match('/ _ {2,} /',$ user)){'? – HamZa 2013-04-21 23:29:09
在您编写正则表达式之前,您必须能够用英语描述您要实施的规则。 – 2013-04-22 03:16:24