java使用正则表达式验证手机号和电话号码和邮箱号码的方法
验证手机号
我国的手机号一般是以1开头,后面跟着10位数字。因此,可以用如下正则表达式:
public static boolean isValidPhoneNumber(String phoneNumber) {
String regex = "^1[3-9]\\d{9}$"; // 适用于中国手机号
return phoneNumber.matches(regex);
}
验证电话号码
电话号码的格式可能会有所不同,通常包括区号和号码。可以用如下正则表达式(假设区号为3-4位,电话号码为7-8位):
public static boolean isValidTelephone(String telephone) {
String regex = "^(\\d{3,4}-)?\\d{7,8}$"; // 区号可以选择性前缀,后面是电话号码
return telephone.matches(regex);
}
验证邮箱地址
邮箱地址的基本格式通常是 用户名@域名,域名可以是多个部分:
public static boolean isValidEmail(String email) {
String regex = "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}$"; // 邮箱格式
return email.matches(regex);
}
完整示例
下面是一个示例程序:
public class Validator {
// 验证手机号
public static boolean isValidPhoneNumber(String phoneNumber) {
String regex = "^1[3-9]\\d{9}$"; // 我国手机号
return phoneNumber.matches(regex);
}
// 验证电话号码
public static boolean isValidTelephone(String telephone) {
String regex = "^(\\d{3,4}-)?\\d{7,8}$"; // 区号可选,后面是电话号码
return telephone.matches(regex);
}
// 验证邮箱地址
public static boolean isValidEmail(String email) {
String regex = "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}$"; // 邮箱格式
return email.matches(regex);
}
public static void main(String[] args) {
// 测试数据
String mobile = "13812345678";
String tel = "021-12345678";
String email = "example@test.com";
// 验证并输出结果
System.out.println("手机号验证: " + isValidPhoneNumber(mobile));
System.out.println("电话号码验证: " + isValidTelephone(tel));
System.out.println("邮箱验证: " + isValidEmail(email));
}
}
运行结果: