20240307正则表达式对常见字段的校验

验证固话号码

//表示以0开头,后跟 2 到 3 位数字,然后是-,最后是 7 到 8 位数字。
    public static boolean checkPhoneNumber(String phoneNumber) {
        if (StringUtils.isEmpty(phoneNumber)) {
            return false;
        }
        Pattern pattern = Pattern.compile("^\\d{2,3}\\-\\d{7,8}$");
        1、实例化Pattern 对象,调用Pattern对象的compile方法 传入正则表达式
        Matcher m = pattern.matcher(phoneNumber);
        2、定义Marcher 对象,使用pattern对象调用matcher方法 传入要验证的字段
        return m.matches();
        3、返回 matcher.matches()
    }

验证IP/域名

    public static boolean checkIPAndDomain(String domainName) {
        if (StringUtils.isEmpty(domainName)) {
            return false;
        }
        // 定义正则表达式模式
        String regex = "[a-zA-Z]";
        //
        Pattern pattern = Pattern.compile(regex);
        // 判断是否包含英文 则为域名
        Matcher matcher = pattern.matcher(domainName);
        if (matcher.find()) {
            return isValidDomain(domainName);
        }
        return isValidIP(domainName);
    }

    public static boolean isValidIP(String ip) {
        log.error("进入ip判断");
        // 定义正则表达式模式
        String regex = "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$";

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(ip);
        return matcher.matches();
    }

    public static boolean isValidDomain(String domain) {
        log.info("进入域名判断");
        // 定义正则表达式模式
        String regex = "^[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(domain);
        return matcher.matches();
    }

验证微信号码

//表示微信号可以包含字母、数字和下划线,长度为 1 到 16 个字符,后面可以跟任意数量的字母、数字或下划线
   public static boolean checkWeChatNumber(String WeChatNumber) {
       if (StringUtils.isEmpty(WeChatNumber)) {
           return false;
       }
       Pattern pattern = Pattern.compile("[a-zA-Z0-9_]{5,19}\\w+");
       Matcher m = pattern.matcher(WeChatNumber);
       return m.matches();
   }

验证银行卡

//表示银行卡号码应该是 13 到 19 位数字。
   public static boolean checkBankNumber(String BankNumber) {
       if (StringUtils.isEmpty(BankNumber)) {
           return false;
       }
       Pattern pattern = Pattern.compile("^\\d{13,19}$");
       Matcher m = pattern.matcher(BankNumber);
       return m.matches();
   }

验证QQ号码

    //表示QQ号码以 1 到 9 开头,后面跟着 4 到 9 个数字
    public static boolean checkQQNumber(String QQNumber) {
        if (StringUtils.isEmpty(QQNumber)) {
            return false;
        }
        Pattern pattern = Pattern.compile("^[1-9][0-9]{4,10}$");
        Matcher m = pattern.matcher(QQNumber);
        return m.matches();
    }
posted @ 2024-03-07 17:41  Only_Aptx-4869  阅读(25)  评论(0)    收藏  举报