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

相关推荐
2601_962128642 分钟前
【JavaWeb06】Tomcat基础入门:架构理解与基本配置指南
java·架构·tomcat
要开心吖ZSH3 分钟前
腾讯 IM × TRTC 联动实战:后端如何撑起一次视频问诊(混流录制篇)
java·音视频·腾讯云·健康医疗·即时通讯·im
吴声子夜歌5 分钟前
Java——类、对象及方法(二)
java·开发语言
2401_890603408 分钟前
Python入门语法(一)
java·开发语言·python
小蒜学长9 分钟前
springboot党建云课堂学习与管理系统(代码+数据库+LW)
java·数据库·spring boot·后端·学习
mldong20 分钟前
六语言引擎实现对比:同构背后的妥协与差异
java·架构
EXI-小洲9 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
2601_9619017010 小时前
SpringBoot使用Nacos进行application.yml配置管理
java·spring boot·spring
何以解忧,唯有..11 小时前
LangChain 工具调用(Tool Calling)实战指南
java·前端·langchain
QQ_216962909611 小时前
【源码编号:project79475】SpringBoot校内二手交易平台:商品发布、分类检索、留言交流、订单管理全流程实战
java·spring boot·后端