1. 身份证
@ApiModelProperty(value = "身份证号", example = "130224199202022012", required = true)
@NotBlank(message = "身份证号,值不能为空")
@Size(max = 18, message = "身份证号,应为18位")
@Size(min = 18, message = "身份证号,应为18位")
//正则表达式:中国大陆身份证 ^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$
//十八位身份证:^[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]$
//十五位身份证:^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$
//18位或15位身份证:(^[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]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$)
//身份证正则表达式 /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i
@Pattern(regexp="^[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]$",message = "身份证号,格式不合法")
private String idNumber;
2. 年月日
//校验日期
public static void dateValid(String date){
if (GasStringUtil.isNotBlank(date)){
//正则 yyyy-MM-dd
String regular="^(\\d{4})-([0-1]\\d)-([0-3]\\d)$";
boolean matches = Pattern.matches(regular, date);
if (!matches){
throw new ExcelAnalysisException("日期 正确格式 应为 yyyy-MM-dd");
}
}
}
3. 校验id
/**
* 用正则表达式
* 校验 String 类型的id 只能是数字
*/
public static String verifyId(String id){
if (GasStringUtil.isNotBlank(id)){
if ("0".equals(id)) {
System.out.println("id 不能为 0");
return "id 不能为 0";
}else if (!(id.matches("^[0-9]+$")) || (Integer.parseInt(id) < 0)){
// ^ 代表正则表达式开始
// $ 代表正则表达式结束
// * 表示 匹配前面的字符 0个或多个
// + 表示 前面的字符 1个或多个
System.out.println("id 应为 正整数,且不能有其他符号");
return "id 应为 正整数,且不能有其他符号";
}
}
return id;
}