V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yimity
V2EX  ›  程序员

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

  •  
  •   yimity · 2015-04-15 16:54:49 +08:00 · 2407 次点击
    这是一个创建于 3291 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1)字符串长度校验,字符串的长度限制在6~20个字符;
    2)字符串包含的字符类型校验,字符类型分为大写字母、小写字母、数字、特殊字符四类;
    3)区分字母的大小写;
    4)连续字符校验:校验字符串中连续字符组成的子串长度不但能高于规定的值(限制在40%),例如密码长度为10位,如果连续输入4个相同的字符,则提示密码较弱;

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

    还有一种逼着别人用强密码的,大写小写数字还有符号一个都不能少……用户自己都他么记不住自己的密码了,这样的密码是可以防破解了,但是每次用的时候都去找回密码么……我就老是这么悲剧,密码有好几种,各网站的限制还不一样……
    phx13ye
        2
    phx13ye  
       2015-04-18 23:51:32 +08:00   ❤️ 1
    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行是硬编码,你自己算一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5179 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:44 · PVG 11:44 · LAX 20:44 · JFK 23:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.