正则表达式不接受 JSON 大括号和冒号以外的无效字符

Regex to not accept invalid characters except JSON braces and colon

我需要使用 RegEx 为请求参数设置验证规则。除了 json 的 ("{}", "[]", ":").

之外,该规则不应允许无效字符

例如:

    "Piece" -> correct
    
    "Piece$%" -> incorrect
    
    {"labelName": "myName"} -> correct

但是,我的 RegEx 不通过 json 格式输入。

    [a-zA-Z0-9\s{}:\[]]+

您可以通过否定逻辑来实现您的检查。您可以查找任何不允许的字符,而不是查找允许的字符。如果您的正则表达式找到任何匹配项,则 json 不一致。

此正则表达式查找任何非单词字符(字母或数字)、白色 space 或 json 的符号([ ], {, }, :, " 或逗号)

[^\w\s\{\}\[\]\:\",]

这里有一个link来测试正则表达式。

https://regex101.com/r/7pn2FD/2