我是靠谱客的博主 香蕉月饼,最近开发中收集的这篇文章主要介绍密码正则,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

package com.example.exceptiondemo.util;

/**
 * @author FBin
 * @date 2019/12/2 10:26
 */
public class CheckPassword {

    //6-12位,至少包括数字、字母两种组合
    public static final String PW_PATTERN_ONE = "^(?=.*[0-9])(?=.*[a-zA-Z])(?!^.*[\u4E00-\u9FA5].*$)(?=\S+$).{6,12}$";
    //public static final String PW_PATTERN_ONE = "^(?![0-9]+$)(?![0-9-/+.~!@#$%^`&*_()]+$)(?![a-z-/+.~!@#$`%^&*_()]+$)(?![A-Z-/+.~!@#$`%^&_*()]+$)(?![a-zA-Z-/+.~!@#$`%^&*()_]+$)(?![-/+.~!@#$`%^&*_()]+$)(?![a-zA-Z]+$)[0-9A-Za-z-/+.~!@#$`%^&_*()]{6,12}$";
    //public static final String PW_PATTERN_ONE = "^(?![a-z]+$)(?![A-Z]+$)(?![0-9]+$)(?![a-zA-Z]+$)[a-zA-Z0-9]{6,12}$";
    //public static final String PW_PATTERN_ONE = "^(?![a-z0-9]+$)(?![A-Za-z]+$)(?![A-Z0-9]+$)[a-z0-9]|[A-Z0-9]{6,12}$"; [a-z0-9]|[A-Z0-9]|
    //8-16位,至少包含数字、字母、符号两种组合
    public static final String PW_PATTERN_TWO = "^(?=.*[0-9a-zA-Z%&',;*@!$%^()_+=?$\x22])(?![0-9]+$)(?![a-zA-Z]+$)(?![%&',;*@!$%^()_+=?$\x22]+$)(?!^.*[\u4E00-\u9FA5].*$)(?=\S+$).{8,16}$";
   // public static final String PW_PATTERN_TWO = "((?=.*\d)(?=.*\D)|(?=.*[a-zA-Z])(?=.*[^a-zA-Z]))(?!^.*[\u4E00-\u9FA5].*$)^\S{8,16}$";
    //public static final String PW_PATTERN_TWO = "^(?![A-Z]+$)(?![a-z]+$)(?![0-9]+$)(?![\W]+$)(?![a-zA-Z]+$)[a-zA-Z0-9\S]{8,16}$";
    //public static final String PW_PATTERN_TWO = "^(?![A-Z]+$)(?![a-z]+$)(?![0-9]+$)(?![\W]+$)(?![a-zA-Z]+$)[a-zA-Z0-9\S]{8,16}$";
    //public static final String PW_PATTERN_TWO = "^(?![A-Z]+$)(?![a-z0-9\W]+$)(?![A-Za-z\W]+$)(?![A-Z0-9\W]+$)[a-zA-Z0-9\W]{8,16}$";
    //8-20位,至少包含数字、小写字母、大写字母
    public static final String PW_PATTERN_THREE = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?!^.*[\u4E00-\u9FA5].*$)(?=\S+$).{8,20}$";

     public static void main(String[] args) {
         System.out.println("fffffffF".matches(PW_PATTERN_TWO));
     }
    public static boolean checkPw(String password, String regex) {
        return password.matches(regex);
    }

    /**
     * 第一种
     *
     * 至少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是最大字符限制
     * – ?=表示匹配表达式
     */
}

最后

以上就是香蕉月饼为你收集整理的密码正则的全部内容,希望文章能够帮你解决密码正则所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部