Java使用 java.util.regex.Pattern 正则表达式校验参数值是否规范

场景:

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 配合正则表达式可以校验字符,符合预期

相关推荐
东离与糖宝14 分钟前
Gradle 9.4+Java26:大型项目构建提速100倍实战配置
java·人工智能
想进大厂的小徐26 分钟前
maven的子模块和子pom的区别
java·maven
pengles31 分钟前
基于RuoYi-Vue-Plus项目实现移动端项目
java·vue.js·uni-app
希望永不加班31 分钟前
SpringBoot 编写第一个 REST 接口(Get/Post/Put/Delete)
java·spring boot·后端·spring
菜菜小狗的学习笔记40 分钟前
Java SE(一)内部类、Lambda表达式、Stream流
java·开发语言
码云数智-园园40 分钟前
Java中的重载(Overload)与重写(Override):本质区别、场景与注意事项
java·开发语言
yxm263366908141 分钟前
洛谷P1217回文质数
java·开发语言
金斗潼关41 分钟前
java反序列化入口方法介绍
java·开发语言·jvm·序列化·反序列化
一直都在5721 小时前
Java并发面经(二)
java·开发语言·spring
小雷君1 小时前
SpringBoot 接口开发5个高频踩坑总结
java·spring boot·后端·面试