Java开发中手机号码校验格式,邮箱格式的验证

该文章提供了Java代码示例,用于验证手机号码、邮箱地址和身份证号码的格式是否正确。手机号码校验包括11位数字和特定前缀的匹配,邮箱验证考虑了常见格式,身份证号则区分了15位和18位的情况,均使用正则表达式进行判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常见的重要号码校验规则,邮箱的格式验证

手机号码的校验规则

方法: 手机号码校验

// 引入包文件
import org.apache.commons.lang3.StringUtils;

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;;
// 第一种方法
public static int checkPhoneNo(String phone) throws BusinessException {
     int status = 0;
     String regex = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\\d{8}$";
     if (StringUtils.isEmpty(phone)) {
         status = 1;
         throw new BusinessException(1,"手机号码为空");
     } else {
         if (phone.length() != 11) {
             System.out.println("手机号码必须为11位数字");
             status = 2;
             throw new BusinessException(1,"手机号应为11位数");
         } else {
             Pattern p = Pattern.compile(regex);
             Matcher m = p.matcher(phone);
             boolean isMatch = m.matches();
             if (isMatch) {
                 System.out.println("恭喜您,您的手机号码" + phone + "是正确格式!!");
             } else {
                 System.out.println("对不起,您的手机号码" + phone + "是错误格式!!");
                 status = 3;
                 throw new BusinessException(1,"手机号码验证失败,请填写正确的手机号");
             }
         }
     }
     return status;
 }

//第二种方法
public static boolean validPhoneNo(String phoneNo) {
    if ((phoneNo!= null) && (!phoneNo.isEmpty())) {
        return Pattern.matches("^1[3-9]\\d{9}$", phoneNo);
    }
    return false;
}
    
private static class BusinessException extends Throwable {
    public BusinessException(int status, String message) {
    }
}

邮箱格式的验证

邮箱格式的验证邮箱验证

// 两种方法
String regex = ^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$;
String pattern="^[A-Za-z0-9\u4e00-\u9fa5]+(\\.[A-Za-z0-9\u4e00-\u9fa5]+)*@[A-Za-z0-9\u4e00-\u9fa5]+(\\.[A-Za-z0-9\u4e00-\u9fa5]+)*(\\.[A-Za-z\u4e00-\u9fa5]{2,})$";

    // 验证邮箱的正则表达式
    public static boolean isValidEmail(String email) {
        if ((email != null) && (!email.isEmpty())) {
            return Pattern.matches("^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*\\.[a-zA-Z0-9]{2,6}$", email);
        }
        return false;
    }

    //使用延迟初始化优化Pattern对象
    private static Pattern pattern = null;
    public static boolean validateEmail(String email) {
        if(pattern == null) {
            pattern = Pattern.compile("^[A-Za-z0-9\u4e00-\u9fa5]+(\\.[A-Za-z0-9\u4e00-\u9fa5]+)*@[A-Za-z0-9\u4e00-\u9fa5]+(\\.[A-Za-z0-9\u4e00-\u9fa5]+)*(\\.[A-Za-z\u4e00-\u9fa5]{2,})$");
        }
        Matcher matcher = pattern.matcher(email);
        return matcher.matches();
    }

身份证号格式的验证

身份证号格式的验证身份证号验证

//身份证号码验证
//第一代身份证15位 String regexIDCard15 = "^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}$";
//第二代身份证18位 String regexIDCard18 = "^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$";

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class IDCard {

    private static final String regexIDCard15 = "^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}$";
    private static final String regexIDCard18 = "^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$";
    public static void main(String[] args) {

        regexIDCard("41032519980925243X");

    }
    public static void regexIDCard(String cardNo) {

        String id_valid="("+regexIDCard15+")"+"|"+"("+regexIDCard18+")";

        Pattern pattern1 =Pattern.compile(id_valid);

        Matcher matcher =pattern1.matcher(cardNo);
        System.out.println(matcher.matches());
    }

}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值