字符串验证工具类
/**
* 验证模块,包括输入输出的验证
*/
public class Validator {
/**
* 判断用户输入的时间格式是否正确
*/
public static boolean checkDateTime(String inputDate) {
String DATE_TIME_FORMAT = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
DATE_TIME_FORMAT, Locale.CHINA);
simpleDateFormat.setLenient(false);
boolean check = false;
try {
simpleDateFormat.parse(inputDate);
check = true;
} catch (Exception ex) {
check = false;
ex.printStackTrace();
}
return check;
}
/**
* 此方法判断输入字符是否为数字0-9 是返回true不是返回false
*
* @param c char
* @return boolean
*/
public static boolean isDigit(char c) {
return (('0' <= c) && (c <= '9'));
}
public static boolean isDigit(String inputStr) {
char tempChar;
for (int i = 0; i < inputStr.length(); i++) {
tempChar = inputStr.charAt(i);
// 如果字符中有一个字符不是数字则返回false
if (!isDigit(tempChar)) {
return false;
}
}
return true;
}
/**
* 此方法判断输入字符是否为字母a-z或A-Z 是返回true不是返回false
*
* @param c char
* @return boolean
*/
public static boolean isAlpha(char c) {
return ((('a' <= c) && (c <= 'z')) || (('A' <= c) && (c <= 'Z')));
}
public static boolean isAlpha(String inputStr) {
char tempChar;
for (int i = 0; i < inputStr.length(); i++) {
tempChar = inputStr.charAt(i);
if (!isAlpha(tempChar)) { // 如果字符中有一个字符不是字母则返回false
return false;
}
}
return true;
}
/**
* 此方法用于检查密码或用户名是否合法,用户名密码只能使用英文字母、数字以及-和_,并且首字符必须为字母或数字 密码首字符必须为字母或数字
*
* @param inputStr 输入
* @return boolean
*/
public static boolean checkUserNamePassword(String inputStr) {
for (int nIndex = 0; nIndex < inputStr.length(); nIndex++) {
char cCheck = inputStr.charAt(nIndex);
if (nIndex == 0 && (cCheck == '-' || cCheck == '_')) {
return false;
}
if (!(isDigit(cCheck) || isAlpha(cCheck) || cCheck == '-' || cCheck == '_')) {
return false;
}
}
return true;
}
/**
* 此方法检查email有效性 返回提示信息
*
* @param email
* @return
*/
public static boolean checkEmail(String email) {
// 电子邮件
String check = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
Pattern regex = Pattern.compile(check);
Matcher matcher = regex.matcher(email);
boolean isMatched = matcher.matches();
return isMatched;
}
/**
* 此方法检查输入的身份证号有效性 返回提示信息 如果返回布尔类型则通过验证
*
* @param IDNumber 身份证号
* @return String
*/
public static boolean checkIDNumber(String IDNumber) {
boolean result = IDNumber.matches("[0-9]{15}|[0-9]{17}[0-9X]");
if (result) {
int year, month, date;
if (IDNumber.length() == 15) {
year = Integer.parseInt(IDNumber.substring(6, 8));
month = Integer.parseInt(IDNumber.substring(8, 10));
date = Integer.parseInt(IDNumber.substring(10, 12));
} else {
year = Integer.parseInt(IDNumber.substring(6, 10));
month = Integer.parseInt(IDNumber.substring(10, 12));
date = Integer.parseInt(IDNumber.substring(12, 14));
}
switch (month) {
case 2:
result = (date >= 1)
&& (year % 4 == 0 ? date <= 29 : date <= 28);