我需要关于密码的RegEx的帮助。密码必须至少包含一个特殊字符(如"§$&/!)和一个数字。
例如,像"EdfA433&“这样的密码必须是有效的,而"aASEas§ö”不是,因为它不包含数字。
到目前为止,我有以下RegEx:
^(?=.*[0-9])(?=.*[a-zA-Z]).{3,}$但这一条显然只检查一个数字。有人能帮上忙吗?
发布于 2010-11-19 20:43:50
您最好使用多个更简单的正则表达式:任何这样的代码检查都不会对性能敏感,而且在给定更复杂的regexp的情况下,额外的维护复杂性可能是不合理的。
所以,我想要的是:
var valid = foo.match(/[0-9]/) && foo.match(/["§$&/!]/);我想知道你是否真的想定义这样的特殊字符:é算特殊字符吗?~是否算作特殊字符?
发布于 2010-11-19 20:55:07
^(?=.*\d)(?=.*\W).{3,}$检查至少一个数字(\d)和一个非字母数字字符(\W)。\W是\w的反转,它匹配数字、字母和下划线。
如果要在“特殊字符”列表中包括下划线,请使用
^(?=.*\d)(?=.*[\W_]).{3,}$发布于 2010-11-19 20:35:20
我会将检查密码是否“硬”的功能分成几个部分,在每个部分中我都会检查一个条件。你可以在Daily WTF上看到一些复杂的正则表达式,密码重置:http://thedailywtf.com/Articles/The-Password-Reset-Facade.aspx
https://stackoverflow.com/questions/4224945
复制相似问题