我试图编写一个正则表达式来验证密码,我特别挣扎于这一点。
我想阻止用户使用相关的数字,如:
123456 or 34567 or 6789
还有重复的数字,如
111111 or 3333 or 2222 or 9999
我尝试阅读并使用在线正则表达式工具,但我非常感谢您提供一些帮助。
注意:我希望允许用户在密码中包含相关和重复的段。以下输入应通过我的验证:
qwerty1234 hidude222 weirdp455
提前致谢。
答案 0 :(得分:0)
这可能适合你
thenums = "4567";
if (thenums.match(/(0123|1234|2345|3456|4567|5678|6789|7890|(\d)\2\2\2)/)) {
alert("bad number sequence, bad!");
}
在变量中的任何位置查找4位数的顺序字符串或4位相同数字的字符串。如果你想匹配你可以做的整个字符串
thenums = "4567";
if (thenums.match(/^(0123|1234|2345|3456|4567|5678|6789|7890|(\d)\2\2\2)$/)) {
alert("bad number sequence, bad!");
}
如果您希望重复三位数,则可以删除其中一个\2
。
更新,摆弄这个,我制作了这个正则表达式,它将搜索包含序列号的字符串,如果它匹配整个字符串。
^(0(?=$|1(?=$|2(?=$|3(?=$|4(?=$|5(?=$|6(?=$|7(?=$|8(?=$|9)))))))))|1(?=$|2(?=$|3(?=$|4(?=$|5(?=$|6(?=$|7(?=$|8(?=$|9(?=$|0)))))))))|2(?=$|3(?=$|4(?=$|5(?=$|6(?=$|7(?=$|8(?=$|9(?=$|0(?=$|1)))))))))|3(?=$|4(?=$|5(?=$|6(?=$|7(?=$|8(?=$|9(?=$|0(?=$|1(?=$|2)))))))))|4(?=$|5(?=$|6(?=$|7(?=$|8(?=$|9(?=$|0(?=$|1(?=$|2(?=$|3)))))))))|5(?=$|6(?=$|7(?=$|8(?=$|9(?=$|0(?=$|1(?=$|2(?=$|3(?=$|4)))))))))|6(?=$|7(?=$|8(?=$|9(?=$|0(?=$|1(?=$|2(?=$|3(?=$|4(?=$|5)))))))))|7(?=$|8(?=$|9(?=$|0(?=$|1(?=$|2(?=$|3(?=$|4(?=$|5(?=$|6)))))))))|8(?=$|9(?=$|0(?=$|1(?=$|2(?=$|3(?=$|4(?=$|5(?=$|6(?=$|7)))))))))|9(?=$|0(?=$|1(?=$|2(?=$|3(?=$|4(?=$|5(?=$|6(?=$|7(?=$|8))))))))))+$
一个格式化版本,供您观赏。
^(0(?=$|1(?=$|2(?=$|3(?=$|4(?=$|5(?=$|6(?=$|7(?=$|8(?=$|9)))))))))
|1(?=$|2(?=$|3(?=$|4(?=$|5(?=$|6(?=$|7(?=$|8(?=$|9(?=$|0)))))))))
|2(?=$|3(?=$|4(?=$|5(?=$|6(?=$|7(?=$|8(?=$|9(?=$|0(?=$|1)))))))))
|3(?=$|4(?=$|5(?=$|6(?=$|7(?=$|8(?=$|9(?=$|0(?=$|1(?=$|2)))))))))
|4(?=$|5(?=$|6(?=$|7(?=$|8(?=$|9(?=$|0(?=$|1(?=$|2(?=$|3)))))))))
|5(?=$|6(?=$|7(?=$|8(?=$|9(?=$|0(?=$|1(?=$|2(?=$|3(?=$|4)))))))))
|6(?=$|7(?=$|8(?=$|9(?=$|0(?=$|1(?=$|2(?=$|3(?=$|4(?=$|5)))))))))
|7(?=$|8(?=$|9(?=$|0(?=$|1(?=$|2(?=$|3(?=$|4(?=$|5(?=$|6)))))))))
|8(?=$|9(?=$|0(?=$|1(?=$|2(?=$|3(?=$|4(?=$|5(?=$|6(?=$|7)))))))))
|9(?=$|0(?=$|1(?=$|2(?=$|3(?=$|4(?=$|5(?=$|6(?=$|7(?=$|8))))))))))+$