-
金额格式:正数【包含至多2位小数】:
第1种形式:
/**
* 校验金额格式是否正确(正数【包含至多2位小数】、包括0)
* @param amount 金额
*/
public static boolean isMatchMoneyFormat(String money){
String regex ="(^[1-9]([0-9]+)?(\\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\\.[0-9]{1,2}$)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(money);
return matcher.find();
}
第2种形式:
/**
* 校验金额格式是否正确(必须2位小数)
* @param amount 金额
*/
public static boolean validMoneyPointFormat(String money){
String regex ="^(([1-9]{1}\\d*)|(0{1}))(\\.\\d{2})$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(money);
return matcher.find();
}
-
金额格式:正数、负数、0.00(注必须2位小数):
/**
* 校验金额格式是否正确(正数、负数,0.00,注必须2位小数)
* @param amount 金额
*/
public static boolean validNegativeAndPositiveMoneyFormat(String money){
String regex ="^(-?([1-9]{1}\\d*)|(-?0{1}))(\\.\\d{2})$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(money);
return matcher.find();
}
-
日期格式【yyyy-MM-dd】(只要符合该格式即可,如 9999-00-11):
/**
* 验证纯日期(格式)-未排除不符合规则的日期yyyy-MM-dd
* @param dateStr 日期字符串
* @return 是否为日期
*/
public static boolean validDateMatch(String dateStr){
String regx = "(\\d{4})-([0-1]\\d)-([0-3]\\d)";
Pattern pattern = Pattern.compile(regx);
Matcher matcher = pattern.matcher(dateStr);
return matcher.find();
}
注意:需要搭配该方法进行判断日期是否有效:
判断是否需要使用到 SimpleDateFormat.setLenient(boolean )方法
SimpleDateFormat.setLenient(true) : 默认值true,不严格解析日期,会自动计算。
SimpleDateFormat.setLenient(false):严格解析日期,如果日期不合格就抛异常,不会自动计算。
/**
* 验证时间是否符合格式并返回date(把字符串转换成日期格式)
* @param value 值
* @param format 格式
* @return
*/
public static Date validDateOrTimeExist(String value,String dateFormat){
Date date=null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
try {
//setLenient(true),java会对当前日期进行计算,比如24个月那么就是1年以后,自动换算,不抛异常
//setLenient(false),严格计算,比如55个月那么就是不合法的日期了,直接异常
simpleDateFormat.setLenient(false);
date = simpleDateFormat.parse(value);
} catch (ParseException e) {
return date;
}
return date;
}
-
纯日期格式+时分秒【yyyy-MM-dd hh:mm:ss】:
/**
* 验证纯日期+时间分yyyy-MM-dd hh:mm:ss
* @param dateStr 日期字符串
* @return 是否为日期
*/
public static boolean validDateAndTimeMatch(String dateAndTimeStr){
String regx = "^(\\d{4})-([0-1]\\d)-([0-3]\\d)\\s([0-5]\\d):([0-5]\\d):([0-5]\\d)$";
Pattern pattern = Pattern.compile(regx);
Matcher matcher = pattern.matcher(dateAndTimeStr);
return matcher.find();
}
-
日期格式验证部分闰年等【yyyy-MM-dd】、【yyyy/MM/dd】:
5.1.【yyyy-MM-dd】:
/**
* 验证日期字符串格式输入是否正确(yyyy-MM-dd)
* @param dateStr 日期字符串
* @return Boolean
*/
public static boolean valiDateTimeWithLongFormatForBar(String dateStr) {
String regx = "(([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)";
Pattern pattern=Pattern.compile(regx);
return pattern.matcher(dateStr).matches();
}
5.2【yyyy/MM/dd】:
/**
* 验证日期字符串格式输入是否正确(yyyy/MM/dd)
* @param dateStr 日期字符串
* @return Boolean
*/
public static boolean valiDateTimeWithLongFormatForSlash(String dateStr) {
String regx = "(([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)";
Pattern pattern=Pattern.compile(regx);
return pattern.matcher(dateStr).matches();
}
-
特殊字符串(可以根据实际情况进行增减):
/**
* 校验是否有特殊字符串
* @param str
* @return
*/
public static Boolean checkTeShu(String str){
String regExp = "[`~!@#$%^&*()+=|{}':;'_\\[\\]\\-<>/?~!@#¥%……&*——+|{}【】‘;:”“’。,、?]";
Pattern p = Pattern.compile(regExp);
Matcher m = p.matcher(str);
return m.find();
}
-
金额格式限制位数decimal(15,2)【13位小数,2位小数】(包括空字符串):
/**
* 校验金额格式限制位数decimal
* @param str
* @return
*/
public static Boolean checkMoneyDigit(String str){
//纯属限制位数的的整数"^\s*$|(^[1-9][0-9]{0,8}?$)|(^(0){1}$)"
String regExp = "^\\s*$|(((^[1-9][0-9]{0,12})+(\\.[0-9]{1,2})?)$)|(^(0){1}$)|(^[0-9]\\.[0-9]{1,2}$";
Pattern p = Pattern.compile(regExp);
Matcher m = p.matcher(str);
return m.find();
}