当至少有1个数字或1个特殊字符且总长度为8或更大时,模式应匹配。正则表达式可选组
它部分工作,但只有特殊字符或数字值在开头。
到目前为止,我有:
/([\d]|[[email protected]#$%^&*()_+])([a-z]).{8,}/
当至少有1个数字或1个特殊字符且总长度为8或更大时,模式应匹配。正则表达式可选组
它部分工作,但只有特殊字符或数字值在开头。
到目前为止,我有:
/([\d]|[[email protected]#$%^&*()_+])([a-z]).{8,}/
为什么一个过于复杂RegExp
?当然这是可能的,但是你必须指定符合这些要求的可能字符组合的每个排列组合。只是这样做:
if (/[\[email protected]#$%^&*()_+]/.test(string) && string.length >= 8) { ... }
正则表达式也可以是:'/ [\ d!@#$%^&*()_ +] /' – rgthree
没错,我会解决这个问题的。我刚刚复制了他的正则表达式 –
你倒着做的,不要试图积极配合特殊字符,限制人们可以/必须使用的。取而代之的是,比赛的东西你认为是不并不特殊,如:
pw.length >= 8 && /\d/.test(pw) && /[^a-z\d\x20]/i.test(pw)
比检查长度,一个数字的存在,那么这不是字母,也不是空间中的人物的存在(在i
标志使得情况不敏感的)。你也可能要禁止的空间,并且通常不能够在键盘上键入其他控制字符(阻止人们在垃圾粘贴):
&& !/[\x00-\x20]/.test(pw)
只要你知道,'[AZ]'还包含字符''[\] ^'_'' –
好点,谢谢你将它放到az。 – Adrian
[正则表达式的密码必须包含至少8个字符,至少1个数字以及大小写字母和特殊字符](http://stackoverflow.com/questions/19605150/regex-for-password-must-至少包含8个字符,最少1个数字和机器人) –