场景:
java中我们可以利用 @Pattern 注解对某个入参进行规则校验,但有些特殊参数在接口入口处不方便校验,需要在代码中校验
一、使用 @Pattern 注解校验
@Pattern(regexp = "^[a-zA-Z0-9]+$", message = "xxx号限输入字母、数字,不可输入特殊字符及空格!")
private String xxxNo;
前提:接口需要标记 @Validated 才会生效
二、使用 java.util.regex.Pattern 校验
示例正则表达式 ^[a-zA-Z0-9]+$ 限制只能输入大小写字母、和数字
1、输入特殊字符、空格等校验
String testStr = "@123 abc&";
String regex = "^[a-zA-Z0-9]+$";
Matcher matcher = Pattern.compile(regex).matcher(testStr);
if (!matcher.find()) {
System.out.println("只能输入字母、数字,不可输入特殊字符及空格!");
return;
}
System.out.println("校验通过!");
输出:
2、输入符合表达式的字符
String testStr = "123abc";
String regex = "^[a-zA-Z0-9]+$";
Matcher matcher = Pattern.compile(regex).matcher(testStr);
if (!matcher.find()) {
System.out.println("只能输入字母、数字,不可输入特殊字符及空格!");
return;
}
System.out.println("校验通过!");
输出:
小结:
从结果看,使用 java.util.regex.Pattern 配合正则表达式可以校验字符,符合预期