整理了几个常用的字符串验证的正侧表达式:
密码最少有一个字符一个数字一个特殊符号,长度最少为8;
email格式匹配 xxx@xxx.xxx.xxx
数字int
数字float
身份证号码
不包含中文
包含中文
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PatternUtil {
//验证密码最少有一个字符一个数字一个特殊符号,长度最少为8
public static final String PASSWORD_PATTERN = "^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[~!@#$%^&*()_+:;,.?]).{8,}$";
//email格式匹配 xxx@xxx.xxx.xxx
public static final String EMAIL_PATTERN = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9]+(?:\\.[a-zA-Z]+){1,2}$";
//数字int
public static final String NUMBER_PATTERN = "^[0-9]+$";
//数字float
public static final String DECIMAL_PATTERN = "^[-+]?[0-9]+\\.?[0-9]+$";
//身份证号码
public static final String ID_CARD_PATTERN = "^[1-9]\\d{5}(18|19|20)\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$";
//不包含中文
public static final String NO_CHINESE_PATTERN = "[^\\u4e00-\\u9fa5]+";
//包含中文
public static final String CHINESE_PATTERN = "^[\\u4e00-\\u9fa5]+$";
public static boolean isValidPassword(final String password) {
Pattern pattern = Pattern.compile(PASSWORD_PATTERN);
Matcher matcher = pattern.matcher(password);
return matcher.matches();
}
public static boolean isValidEmail(final String email) {
Pattern pattern = Pattern.compile(EMAIL_PATTERN);
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
public static boolean isValidIDCard(final String idCard) {
Pattern pattern = Pattern.compile(ID_CARD_PATTERN);
Matcher matcher = pattern.matcher(idCard);
return matcher.matches();
}
public static void main(String[] args) {
System.out.println(isValidIDCard("44........21X"));
}
}
会继续整理。。。。。。