各种常用格式校验方法(身份证号格式校验、手机号格式校验、车牌号格式校验...)正则表达式

1、手机号格式校验(1)

java 复制代码
    /**
     * 手机号码-合法性-正则校验
     * @param phoneNumber
     * @return
     */
    public static boolean isValidatePhoneNumber(String phoneNumber) {
        Pattern pattern = Pattern.compile("^[1][3-9]\\d{9}$");
        Matcher matcher = pattern.matcher(phoneNumber);
        return matcher.matches();
    }

2、手机号格式校验(2)包含座机及外国电话

java 复制代码
    /**
     * 包含座机及外国电话
     * @param phoneNumber
     * @return
     */
    public static boolean validatePhoneNumber(String phoneNumber){
        String regex = "^1[3-9]\\d{9}$|" +
                "^1[3-9]\\d{1}[-\\s]\\d{4}[-\\s]\\d{4}$|" +
                "^\\(1[3-9]\\d{1}\\)\\d{4}-\\d{4}$|" +
                "^(?:\\(\\+\\d{2}\\)|\\+\\d{2})(\\d{11})$|" +
                "^0\\d{3}-\\d{7}$|" +
                "^0\\d{2}-\\d{8}$";
        Pattern pattern = Pattern.compile(regex);
        return pattern.matcher(phoneNumber).matches();
    }

3、身份证号格式校验

java 复制代码
    public static boolean validateIdentityNo(String identityNo) {
        String regex = "^\\d{17}[\\d|x|X]$";
        Pattern pattern = Pattern.compile(regex);
        return pattern.matcher(identityNo).matches();
    }

4、车牌号格式校验,包含新能源

java 复制代码
    /**
     * 包含新能源
     * @param carNumber
     * @return
     */
    public static boolean validateCarNumber(String carNumber){
        if (carNumber.length() >= 7 && carNumber.length() <= 8){
            Pattern p = Pattern.compile("^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[a-zA-Z](([ABCDF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[ABCDF]))|[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1})$");
            Matcher m = p.matcher(carNumber);
            return m.matches();
        }else{
            return false;
        }
    }

5、邮箱格式校验

java 复制代码
public static boolean validateEmail(String email) {
        int k = 0;
        if(email == null) {
            return false;
        }
         /*
          * 单引号引的数据 是char类型的
                                    双引号引的数据 是String类型的
                                    单引号只能引一个字符
                                    而双引号可以引0个及其以上*
          */

        //判断是否有仅有一个@且不能在开头或结尾
        if(email.indexOf("@") > 0 && email.indexOf('@') == email.lastIndexOf('@') && email.indexOf('@') < email.length()-1) {
            k++;
        }

        //判断"@"之后必须有"."且不能紧跟
        if(email.indexOf('.',email.indexOf('@')) > email.indexOf('@')+1 ) {
            k++;
        }
        //判断"@"之前或之后不能紧跟"."
        if(email.indexOf('.') < email.indexOf('@')-1 || email.indexOf('.') > email.indexOf('@')+1 ) {
            k++;
        }
        //@之前要有5个字符
        if(email.indexOf('@') > 4 ) {
            k++;
        }

        if(email.endsWith("com") || email.endsWith("org") || email.endsWith("cn") ||email.endsWith("net")) {
            k++;
        }
        return k == 5;
    }

6、校验字符串是否符合年月yyyyMM时间格式

java 复制代码
    /**
     * 校验字符串是否符合yyyyMM时间格式
     * @param dateStr
     * @return
     */
    public static boolean isDateFormatValid(String dateStr){
        String regex = "^(\\d{4})(0[1-9]|1[0-2])$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(dateStr);
        return matcher.matches();
    }

7、校验字符串是否符合年月日yyyyMMdd时间格式

java 复制代码
    /**
     * 校验字符串是否符合yyyyMMdd格式
     * @param dateStr
     * @return
     */
    public static boolean isDateFormatValid(String dateStr){
        String dateFormat = "yyyyMMdd";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
        simpleDateFormat.setLenient(false);
        try{
            simpleDateFormat.parse(dateStr);
            return true;
        }catch (ParseException e){
            return false;
        }
    }
相关推荐
沐浴露z1 天前
【Java SpringAI智能体开发学习 | 2】SpringAI 实用特性:自定义Advisor,结构化输出,对话记忆持久化,prompt模板,多模态
java·spring·springai
小沈同学呀1 天前
创建一个Spring Boot Starter风格的Basic认证SDK
java·spring boot·后端
码农小伙1 天前
通俗易懂地讲解JAVA的BIO、NIO、AIO
java·nio
zhangfeng11331 天前
win7 R 4.4.0和RStudio1.25的版本兼容性以及系统区域设置有关 导致Plots绘图面板被禁用,但是单独页面显示
开发语言·人工智能·r语言·生物信息
不要再敲了1 天前
JDBC从入门到面试:全面掌握Java数据库连接技术
java·数据库·面试
潇I洒1 天前
若依4.8.1打包war后在Tomcat无法运行,404报错的一个解决方法
java·tomcat·ruoyi·若依·404
子午1 天前
Python的uv包管理工具使用
开发语言·python·uv
Funcy1 天前
XxlJob 源码分析05:执行器注册流程
java
Boop_wu1 天前
[数据结构] 队列 (Queue)
java·jvm·算法
无敌的神原秋人1 天前
关于Redis不同序列化压缩性能的对比
java·redis·缓存