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

如何在Joi正则的否定字符集中添加']'特殊字符?

Joi正则校验添加']'到禁止字符集的正确实现

正则表达式的否定字符集[^...]中,]是特殊标记,直接放在字符集中间会被识别为字符集的结束符号,导致语法报错。你可以通过以下两种方式解决:

方法1:将']'放在字符集最开头

在否定字符集的起始位置(^之后)直接写],正则引擎会将其当作普通禁止字符,而非结束标记:

message: Joi.string().regex(/^[]^<>#*=+}[]+$/).required()

注:字符集里的^若不在最开头位置,仅作为普通字符存在,不会影响否定校验的逻辑。

方法2:对']'进行转义

用反斜杠\对]转义,明确告知正则引擎这是一个普通字符:

message: Joi.string().regex(/^[^<>#*=+^}\[\]]+$/).required()

以上两种写法都能正确校验不包含<>#*=+^}]这些特殊字符的字符串,且不会触发IDE的语法错误提示。

内容的提问来源于stack exchange,提问作者Pierre Abi Chedid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:45:33