转义正则表达式以获取有效的JSON

转义正则表达式以获取有效的JSON,json,schema,Json,Schema,在我的模式中,我想识别某些模式来限制用户可以输入的数据类型。我使用正则表达式来限制用户可以输入的内容,但是当我尝试使用这样的在线验证器验证JSON时,正则表达式会被标记 有没有办法让验证器忽略不同意它的正则表达式特殊字符,但仍然保留正则表达式 奇怪的是,验证器只在某些实例上出错。例如,它标记regex的第二个实例,而不是第一个实例,尽管它们在这里是相同的: "institutionname": { "type": "string",

在我的模式中,我想识别某些模式来限制用户可以输入的数据类型。我使用正则表达式来限制用户可以输入的内容,但是当我尝试使用这样的在线验证器验证JSON时,正则表达式会被标记

有没有办法让验证器忽略不同意它的正则表达式特殊字符,但仍然保留正则表达式

奇怪的是,验证器只在某些实例上出错。例如,它标记regex的第二个实例,而不是第一个实例,尽管它们在这里是相同的:

            "institutionname": {
                "type": "string",
                "description": "institution name",
                "label": "name",
                "input-type": "text",
                "pattern": "^[A-Za-z0-9\s]+$"
            },
            "bio": {
                "type": "string",
                "label": "bio",
                "input-type": "text",
                "pattern": "^[A-Za-z0-9\s]+$",
                "help-box": "tell us about yourself"
            },

正是斜杠把验证搞砸了你可以用
%5C
编码,这是
\
的十六进制编码,或者Mike W说你可以像
\
那样双重转义,然后你可以在你想用它们的时候对它们进行解码<代码>%5C不适合使用过梁。再加上手工操作是一项工作。一个很长的正则表达式怎么样-

([^()[\]\\,;:\\s@\\\\]+(\\.[^()[\]\\,;:\\s@\\\]+*)(\\\+\)@((\\[[0-9]{1,3}\\\.[0-9]{1,3}\\.[0-9]{1,3}\\\\\\.[0-9]{1,3}\\\\\\\\\\\.]124;([a-zA Z\\-0-9]+[a-Z]\\\\\\\\\\\\+]2}>

所以,请不要杀了你自己去做这件事


如果该链接将来无法使用,请找到其他联机工具:)

您需要在反斜杠前面加上另一个反斜杠以避开反斜杠:
“^[A-Za-z0-9\\s]+$”
。当我尝试使用JSONLint时,它同时标记了这两个实例。我如何摆脱这种模式:“^[A-Za-z\s]+[^0-9A-z+\\\\\\\-\~`!\\\\\\\\\\\$\%\\\&*()\+\=\\\\\\[]\\:\'''\',\.\?\/\\\\\\\\\\.]$双重转义所有的“\”,如我的示例所示。您转义的很多角色都在角色类中,因此不需要转义抱歉,但是我需要如何转义以及为什么转义“?通过在字符前面加一个``来转义字符。你这样做的原因是因为解释器需要知道一个字符何时是“特殊的”——也就是说,向它指示某种命令,或者是“文字”,告诉你它实际上是一个斜杠。在JSON中,如果机器看到一个反斜杠,它会假设下一个字符是特殊命令的一部分,比如“\n”说“插入新行”。当你转义斜杠时,你会说“不,真的,我想要一个字面斜杠,接下来的字符不是特殊的”先生,你很有头脑