请大家帮忙整理一个校验密码的正则, javascript 的。

2015-04-15 16:54:49 +08:00
 yimity
1)字符串长度校验,字符串的长度限制在6~20个字符;
2)字符串包含的字符类型校验,字符类型分为大写字母、小写字母、数字、特殊字符四类;
3)区分字母的大小写;
4)连续字符校验:校验字符串中连续字符组成的子串长度不但能高于规定的值(限制在40%),例如密码长度为10位,如果连续输入4个相同的字符,则提示密码较弱;

做了好久 javascript ,但是 正则 一直特别不会,还是求大家给看看吧。
2546 次点击
所在节点    程序员
2 条回复
NewYear
2015-04-15 18:24:28 +08:00
搞不懂密码要限制这么多做什么,难道不是接受数据后直接变成hash了?还是你竟然还是明文存储的?

还有一种逼着别人用强密码的,大写小写数字还有符号一个都不能少……用户自己都他么记不住自己的密码了,这样的密码是可以防破解了,但是每次用的时候都去找回密码么……我就老是这么悲剧,密码有好几种,各网站的限制还不一样……
phx13ye
2015-04-18 23:51:32 +08:00
https://github.com/Alwayswithme/exercise/blob/master/JavaScript/validate.js

validatePasswordByRule(6,20,4,'a');
Object { result: false, msg: "密码长度范围须为6~20" }
validatePasswordByRule(6,20,4,'LINUX1;');
Object { result: false, msg: "密码须包含小写字母" }
validatePasswordByRule(6,20,4,'aaab1[');
Object { result: false, msg: "密码须包含大写字母" }
validatePasswordByRule(6,20,4,'aaaBs[');
Object { result: false, msg: "密码须包含数字" }
validatePasswordByRule(6,20,4,'aaaBsd1');
Object { result: false, msg: "密码须包含标点符号" }
validatePasswordByRule(6,20,4,'aaaaBsd1;');
Object { result: false, msg: "密码有太多重复字符" }
validatePasswordByRule(6,20,4,'aaaBsd1;');
Object { result: true, msg: "密码符合规则" }

是这样吗,不过43行是硬编码,你自己算一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/183919

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX