http://regexr.com?34vo9 http://regexr.com?34vo9
正则表达式:
^(?=.{8,20}$)(([a-z0-9])\2?(?!\2))+$
第一个前瞻 ((?=.{8,20}$)
) 检查字符串的长度。第二部分通过以下方式进行双重字符和有效性检查:
(
([a-z0-9]) Matching a character and storing it in a back reference.
\2? Optionally match one more EXACT COPY of that character.
(?!\2) Make sure the upcoming character is NOT the same character.
)+ Do this ad nauseum.
$ End of string.
好的。我看到您添加了一些额外的要求。我的基本论坛仍然有效,但我们必须为您提供更多逐步的方法。所以:
^...$
出于显而易见的原因,您的整个正则表达式将被放入开始和结束字符中。
(?=.{n,m}$)
长度检查。将其放在正则表达式的开头,其中 n 为最小长度,m 为最大长度。
(?=(?:[^REQ]*[REQ]){n,m})
必需的字符。将其放在正则表达式的开头,并使用 REQ 作为所需字符,以要求字符中的 N 到 M。您可以删除(?: ..){n,m}
仅需要该字符之一。
(?:([VALID])\1?(?!\1))+
剩下的就是你的表情了。将 VALID 替换为您的有效字符。所以,您的密码正则表达式是:
^(?=.{8,20}$)(?=[^A-Za-z]*[A-Za-z])(?=[^0-9]*[0-9])(?:([\w\d*?!:;])\1?(?!\1))+$
'斯普兰德:
^
(?=.{8,20}$) 8 to 20 characters
(?=[^A-Za-z]*[A-Za-z]) At least one Alpha
(?=[^0-9]*[0-9]) At least one Numeric
(?:([\w\d*?!:;])\1?(?!\1))+ Valid Characters, not repeated thrice.
$
http://regexr.com?34vol http://regexr.com?34vol这是新的行动。