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"));
    }

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜空下的星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值