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

相关推荐
aq5535600几秒前
数字资源分发的技术革命与未来趋势
java·开发语言·python·php
蚰蜒螟4 分钟前
深度剖析:从 clone3 到 start_routine —— Linux 新线程的“破茧成蝶”之旅
java·linux·运维
派大星酷6 分钟前
MCP 工具介绍及编写指南
java·人工智能
梦想的旅途28 分钟前
解构自动化办公新思路:实现外部群聊能力的深度集成与交互
java·数据库·rpa
启山智软8 分钟前
企业如何选择适合自己的电商系统技术架构?(实操落地版)
java·spring·架构·开源·商城开发
invicinble10 分钟前
对于java基础
java·开发语言
knight_9___13 分钟前
RAG面试篇9
java·人工智能·python·算法·agent·rag
石榴树下的七彩鱼18 分钟前
智能抠图API怎么选?AI抠图多语言接入实战(Python/Java/PHP/JS完整教程)
java·python·智能抠图·ai抠图·api接入·图片去背景·电商工具
逻辑驱动的ken20 分钟前
Java高频面试考点场景题13
java·开发语言·jvm·面试·求职招聘·春招
lclcooky28 分钟前
Spring Boot 整合 Keycloak
java·spring boot·后端