zoukankan      html  css  js  c++  java
  • 密码强度正则表达式 – 必须包含大写字母,小写字母和数字,至少8个字符等

    密码强度正则表达式 – 必须包含大写字母,小写字母和数字,至少8个字符等
    
    发表于 2017年09月8日 by 天涯孤雁 被浏览 3,953 次 分享到: 
    2
    小编推荐:掘金是一个高质量的技术社区,从 ECMAScript 6 到 Vue.js,性能优化到开源类库,让你不错过前端开发的每一个技术干货。各大应用市场搜索「掘金」即可下载APP,技术干货尽在掌握..
    
    
    需要一个密码强度正则表达式在用户注册时校验用户密码强度:密码至少8个字符,包括1个大写字母,1个小写字母和1个数字或特殊字符,例如#,?,!。网上搜索了一些解决方案分享给大家。
    
     
    
    方案一
    
    至少8-16个字符,至少1个大写字母,1个小写字母和1个数字,其他可以是任意字符:
    
    /^(?=.*[a-z])(?=.*[A-Z])(?=.*d)[^]{8,16}$/
    
    或者:
    
    /^(?=.*[a-z])(?=.*[A-Z])(?=.*d)[sS]{8,16}$/
    
    其中 [sS] 中的s空白符,S非空白符,所以[sS]是任意字符。也可以用 [dD]、[wW]来表示。
    
    至少8个字符,至少1个大写字母,1个小写字母和1个数字,不能包含特殊字符(非数字字母):
    
    ^(?=.*[A-Za-z])(?=.*d)[A-Za-zd]{8,}$
    
    至少8个字符,至少1个字母,1个数字和1个特殊字符:
    
    ^(?=.*[A-Za-z])(?=.*d)(?=.*[$@$!%*#?&])[A-Za-zd$@$!%*#?&]{8,}$
    
    至少8个字符,至少1个大写字母,1个小写字母和1个数字:
    
    ^(?=.*[a-z])(?=.*[A-Z])(?=.*d)[a-zA-Zd]{8,}$
    
    至少8个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符:
    
    ^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*[$@$!%*?&])[A-Za-zd$@$!%*?&]{8,}
    
    最少8个最多十个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符:
    
    ^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*[$@$!%*?&])[A-Za-zd$@$!%*?&]{8,10}
    
    方案二
    
    还有,你可以使用这个正则表达式:
    
    ^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$
    
    这个正则表达式将强制执行这些规则:
    
    至少1个大写字母English letter,(?=.*?[A-Z])
    至少1个小写英文字母,(?=.*?[a-z])
    至少1位数字,(?=.*?[0-9])
    至少有1个特殊字符,(?=.*?[#?!@$%^&*-])
    最小8个长度.{8,}
    方案三
    
    正则表达式没有AND运算符,所以编写正则表达式与有效密码匹配是非常困难的,当有效性被某些东西和其他东西等定义时…
    
    但是,正则表达式确实有1个OR运算符,所以只需应用DeMorgan的定理,并编写1个与无效密码相匹配的正则表达式:
    
    任何少于8个字符或任何没有数字或任何没有大写字母或任何没有小写字母或任何没有特殊字符的任何东西。
    
    所以:^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$,如果有什么匹配的话,这是1个无效的密码。
    
    方案四
    
    由于特殊字符仅限于键盘中的特殊字符,因此可用于任何特殊字符:
    
    ^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[d]){1,})(?=(.*[W]){1,})(?!.*s).{8,}$
    
    这个正则表达式将强制执行这些规则:
    – 至少1个大写英文字母
    – 至少1个小写英文字母
    – 至少1位数字
    – 至少1个特殊字符
    – 最少8个长度
    
    方案五
    
    根据我的情况,我遇到了最受欢迎的答案。例如,我的验证失败,其中包含;或[等字符。我对 white-listing 我的特殊字符不感兴趣,所以我用[^ws]作为测试 – 简单地把非字符(包括数字)和非空格字符放在一起。总而言之,这是对我有用的
    
    至少8字符
    至少1数字字符
    至少1小写字母
    至少1大写字母
    至少1特殊字符
    /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^ws]).{8,}$/ 简单演示涵盖各种情况
    
    方案六
    
    导入JavaScript文件jquery.validate.min.js。
    
    您可以使用此方法:
    
    JavaScript 代码:
    $.validator.addMethod("pwcheck", function (value) {
    return /[@#$\%^&*()\_+!]/.test(value) && /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value)
    });
    至少1个大写英文字母
    至少1个小写英文字母
    至少1位数字
    至少1个特殊字符
    方案七
    
    尝试这个:
    – 最少6个字符
    – 至少有1个大写字符
    – 至少1个小写字符
    – 至少1个特殊字符
    
    表达式:
    
    /^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*[$@$!%*?&.])[A-Za-zd$@$!%*?&.]{6, 20}/
    
    可选特殊字符:
    
    至少1个特殊字符
    至少1个数字
    特殊字符是可选的
    最少6个字符,最多16个字符
    表达式:
    
    /^(?=.*d)(?=.*[a-zA-Z]).{6,20}$/
    
    如果不需要最小和最大条件,则删除.{6, 16}
    – 6是最小字符数限制
    – 20是最大字符限制
    – ?=表示匹配表达式
    //不能出现两个数字挨在一块。
        public static boolean isRepeatNumber(String str){
            //String regex = "^.*[([0-9][0-9]){1,}].*$";
             String regex = "^.*([0-9][0-9]).*$";
            return match(regex,str);
        }
  • 相关阅读:
    矿场和矿池有什么区别?
    石墨烯技术到底是什么?
    区块链技术如何解决网络犯罪?
    区块链+AI将给区块链带来怎样的改变?
    区块链技术具体包含哪些方面?
    2018年加密货币税率为0%的国家盘点
    what??|诞生才一年的BCH竟面临硬分叉的抉择
    币圈黑客在偷到币后是如何销脏的?
    选择器
    纯js+html+css实现模拟时钟
  • 原文地址:https://www.cnblogs.com/loong-hon/p/11288028.html
Copyright © 2011-2022 走看看