You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则表达式允许指定字符并排除@等非法字符?

正则表达式解决方案

要实现你需要的规则,正确的正则表达式应该是:
^[a-zA-Z0-9_-]+$

表达式拆解:

  • ^:锚定字符串的起始位置,确保从第一个字符就符合规则
  • [a-zA-Z0-9_-]:定义允许的字符集合:
    • a-zA-Z:任意大小写英文字母
    • 0-9:任意阿拉伯数字
    • - 和 _:仅允许的两个特殊字符
  • +:要求前面的字符集合至少出现一次(如果需要允许空输入,将+替换为*即可)
  • $:锚定字符串的结束位置,确保整个输入内容都符合规则,不会出现@或其他非法字符

你之前的表达式问题:

你使用的[^a-zA-Z0-9]是取反匹配逻辑,它会匹配所有非字母数字的字符,完全违背了你“只允许指定字符”的需求。同时这个表达式既没有包含允许的-和_,也没有限制整个字符串的范围,更无法排除@这类非法字符。

如果需要单独检测输入中是否存在非法字符(比如@或其他未被允许的符号),可以使用:
[^a-zA-Z0-9_-]
只要这个表达式能匹配到内容,就说明输入包含了不符合规则的字符。

内容的提问来源于stack exchange,提问作者MrRobot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 04:05:13