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

相关推荐
爱干饭的boy11 分钟前
手写Spring底层机制的实现【初始化IOC容器+依赖注入+BeanPostProcesson机制+AOP】
java·数据结构·后端·算法·spring
影子240116 分钟前
java jdbc连接sqlserver2008R2版本数据库报错,驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
java·数据库·ssl
失散1329 分钟前
分布式专题——10.1 ShardingSphere介绍
java·分布式·架构·shardingsphere·分库分表
记得开心一点嘛36 分钟前
手搓Tomcat
java·tomcat
lightqjx1 小时前
【C++】string类 模拟实现
java·开发语言·c++
echoyu.1 小时前
初识微服务-nacos配置中心
java·微服务
只_只1 小时前
B1013 PAT乙级JAVA题解 数素数
java·开发语言
喜欢你,还有大家1 小时前
Nginx服务——安装与搭建
java·服务器·nginx
小玉起起1 小时前
IntelliJ IDEA 2025.1 Java Stream Debugger 快速使用指南
java·intellij-idea·idea
龙卷风04052 小时前
SpringAI调用第三方模型增加自定义请求参数
java·后端