正则表达式之密码验证

作者: jaclon 分类: JS 发布时间: 2017-06-05 17:11 ė 6没有评论

要求
1,允许数字、字母、特殊字符
2,至少包含两种类型的字符
var re = /^(?!\d+$)(?![a-zA-Z]+$)(?![-`=\\\[\];',.\/~!@#$%^&*()_+|{}:\"<>?]+$)[a-zA-Z\d-`=\\\[\];',.\/~!@#$%^&*()_+|{}:\"<>?]{6,12}$/;

分解开来解释
(?!\d+$) 不能纯数字
(?![a-zA-Z]+$) 不能纯字母
(?![-`=\\\[\];’,.\/~!@#$%^&*()_+|{}:\”<>?]+$) 不能纯特殊字符(这里的特殊字符可以根据需要调整
[a-zA-Z\d-`=\\\[\];’,.\/~!@#$%^&*()_+|{}:\”<>?]{6,12} 指定字符集(包含字母、数字、特殊字符)且长度在6到12

其实如果是纯特殊字符也不是不可以,只要不是都相同的,比如:!@#$%^ 这样的密码强度也是很高的,但像:@@@@@@ 这种的就不了;对上面的正则作一下调整
var re = /^(?!\d+$)(?![a-zA-Z]+$)(?!([-`=\\\[\];’,.\/~!@#$%^&*()_+|{}:\”<>?])\1{5,11}$)[a-zA-Z\d-`=\\\[\];’,.\/~!@#$%^&*()_+|{}:\”<>?]{6,12}$/;

(?!([-`=\\\[\];’,.\/~!@#$%^&*()_+|{}:\”<>?])\1{5,11}$) 这部份作了调整,改为只要不是重复的特殊字符也允许。
这里的\1是对前面()中匹配的字符的引用,如果括号中匹配的结果是@,那么就等于 @@{5,11}$

本文出自 肥蕉博客@IT技术,热门话题,生活随笔,美图欣赏,转载时请注明出处及相应链接。

本文永久链接: http://www.bananawolf.com/html/2017/06/1008.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

Ɣ回顶部