Java使用正则校验各种信息

一、前言
在实际项目中,我们有可能需要针对身份证、IP地址,手机号等相关信息做校验,这是可以通过正则匹配形式实现相关校验。

二、具体实现
1.先定义相关信息校验工具类。

public class RegexUtil {
    public static final String identity_regex="^[1-9][0-9]{5}(1[8-9][0-9]{2}|[2-9][0-9]{3})((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)[0-9]{3}[0-9Xx]$";

    public static final String ip_regex="^((2(5[0-5]|[0-4][0-9]))|[0-1]?[0-9]{1,2})(\\.((2(5[0-5]|[0-4][0-9]))|[0-1]?[0-9]{1,2})){3}$";

    public static final String phone_regex="^0[0-9]{2,3}-[0-9]{7,8}|(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])[0-9]{8}$";

    public static final String email_regex="^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$";
    public static final String date_regex="(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)";
    /**
     * 校验身份证号
     * @param identityCard
     * @return
     */
    public static boolean checkIdentityCard(String identityCard){
        Pattern pattern=Pattern.compile(identity_regex);
        Matcher matcher=pattern.matcher(identityCard);
        return matcher.matches();
    }

    /**
     * 校验IP地址
     * @param ip
     * @return
     */
    public static boolean checkIpAddress(String ip){
        Pattern pattern=Pattern.compile(ip_regex);
        Matcher matcher=pattern.matcher(ip);
        return matcher.matches();
    }

    /**
     * 校验手机号
     * @param phone
     * @return
     */
    public static boolean checkPhone(String phone){
        Pattern pattern=Pattern.compile(phone_regex);
        Matcher matcher=pattern.matcher(phone);
        return matcher.matches();
    }

     /**
     * 校验邮箱
      * @param email
     * @return
     */
    public static boolean checkEmail(String email){
        Pattern pattern=Pattern.compile(email_regex);
        Matcher matcher=pattern.matcher(email);
        return matcher.matches();
    }

    /**
     * 校验日期(格式为 yyyy-MM-dd)
     * @param date
     * @return
     */
    public static boolean checkDate(String date){
        Pattern pattern=Pattern.compile(date_regex);
        Matcher matcher=pattern.matcher(date);
        return matcher.matches();
    }
	
}

2.接着可以测试来验证下。

public class test{
 	public static void main(String[] args) {
        System.err.println(RegexUtil.checkIdentityCard("362421199408320912"));
    }
}

结果如下:
在这里插入图片描述
接着将身份证号的32改为31

 public static void main(String[] args) {
        System.err.println(checkIdentityCard("362421199408310912"));
    }

结果如下:
在这里插入图片描述

你可能感兴趣的:(java,开发语言)