news 2026/11/6 1:43:44

Java中如何校验非法字符

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java中如何校验非法字符

校验名称或规格时,核心思路是用正则表达式匹配“非法字符”,只要匹配到就判定不通过。下面直接给你可用的写法。

✅ 正则校验:不允许出现逗号、换行、回车、空格

// 校验字符串是否包含非法字符(逗号、换行、回车、空格)publicstaticbooleancontainsIllegalChar(Stringinput){if(input==null){returntrue;// 或按需求返回 false}// 匹配逗号、换行符、回车符、空格Stringregex="[,\\n\\r ]";returninput.matches(".*"+regex+".*");}

关键点:matches()需要全量匹配,所以用.*包裹。如果返回true,说明包含非法字符。

✅ 更严谨:同时校验其他空白字符

如果想把制表符\t、Unicode 换行等也禁掉,可以用\\s:

// \\s 匹配所有空白字符:空格、制表符、换行、回车、换页等publicstaticbooleancontainsIllegalChar(Stringinput){if(input==null){returntrue;}Stringregex="[,\\s]";returninput.matches(".*"+regex+".*");}

✅ 推荐:用 Pattern 预编译(性能更好)

importjava.util.regex.Pattern;publicclassValidator{// 预编译正则,避免每次匹配都重新编译privatestaticfinalPatternILLEGAL_PATTERN=Pattern.compile("[,\\s]");publicstaticbooleanisValid(Stringinput){if(input==null||input.isEmpty()){returnfalse;}return!ILLEGAL_PATTERN.matcher(input).find();// find() 只要找到就返回 true}}

注意:这里用find()而不是matches(),find()只要字符串任意位置有匹配就返回true,更适合“只要包含就拒绝”的场景。

⚠️ 几个容易踩的坑

  1. Java 字符串里写正则,反斜杠必须双写:\\n、\\r、\\s,少写一个会编译报错或匹配不到。
  2. matches()是全量匹配,必须加.*才能匹配“包含”的情况;find()则不需要。
  3. 如果只是不想让中间有空格,但允许首尾有,需要单独处理trim();如果想完全禁止空格,用\\s更全面。

✅ 如果你用的是 Spring Boot 实体校验(@Valid)

可以用自定义注解,或者直接用@Pattern:

@Pattern(regexp="^[^,\\s]+$",message="名称不能包含逗号、空格或换行")privateStringname;

^[^,\\s]+$表示:整个字符串只能由非逗号、非空白字符组成,有一个都不行。

核心结论:用正则[,\\s]配合find()或matches()就能同时拦住逗号、空格、换行、回车;如果只想禁空格和逗号,用[,\\s]就够了,想连制表符也禁,\\s已经包含它了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/6 1:43:40

霞鹜文楷 LXGW WenKai:免费商用的开源楷体中文字体

霞鹜文楷 LXGW WenKai:免费商用的开源楷体中文字体 【免费下载链接】LxgwWenKai An open-source Chinese font derived from Fontworks Klee One. 一款开源中文字体,基于 FONTWORKS 出品字体 Klee One 衍生。 项目地址: https://gitcode.com/GitHub_T…

作者头像 李华
网站建设 2026/11/6 1:43:00

推荐 9 个 yyds 前后端分离项目

现在的主流架构设计模式是使用前后端分离, 它最初的打算是根据单一职责这个原则来提升代码的质量, 进而达成节省人力和减少在沟通过程当中信息丢失的目标。这篇文档在这儿向你推荐九个前后端是分开做开源项目, 这些项目用的都是目前最火的、很多人都在用的那种技术组合方案。你…

作者头像 李华
网站建设 2026/11/6 1:42:57

Folia 全屏歌词播放器从下载到首次播放:3 端 10 分钟跑通

Folia 全屏歌词播放器从下载到首次播放:3 端 10 分钟跑通 【免费下载链接】folia-major 专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器 A multi-platform music player for local files, Navidrome, and online streaming services, fe…

作者头像 李华
网站建设 2026/11/6 1:42:57

xLua 性能优化:把 Lua 函数执行效率拉起来,掉帧先降一半

xLua 性能优化:把 Lua 函数执行效率拉起来,掉帧先降一半 【免费下载链接】xLua xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc. 项目地址: https://gitcode.com/gh_mirrors/…

作者头像 李华