• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yimity
V2EX  ›  程序员

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

  •  
  •   yimity · Apr 15, 2015 · 3108 views
    This topic created in 4092 days ago, the information mentioned may be changed or developed.
    1)字符串长度校验,字符串的长度限制在6~20个字符;
    2)字符串包含的字符类型校验,字符类型分为大写字母、小写字母、数字、特殊字符四类;
    3)区分字母的大小写;
    4)连续字符校验:校验字符串中连续字符组成的子串长度不但能高于规定的值(限制在40%),例如密码长度为10位,如果连续输入4个相同的字符,则提示密码较弱;

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

    还有一种逼着别人用强密码的,大写小写数字还有符号一个都不能少……用户自己都他么记不住自己的密码了,这样的密码是可以防破解了,但是每次用的时候都去找回密码么……我就老是这么悲剧,密码有好几种,各网站的限制还不一样……
    phx13ye
        2
    phx13ye  
       Apr 18, 2015   ❤️ 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行是硬编码,你自己算一下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   943 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 18:29 · PVG 02:29 · LAX 11:29 · JFK 14:29
    ♥ Do have faith in what you're doing.