转义正则表达式以获取有效的JSON
在我的模式中,我想识别某些模式来限制用户可以输入的数据类型。我使用正则表达式来限制用户可以输入的内容,但是当我尝试使用这样的在线验证器验证JSON时,正则表达式会被标记 有没有办法让验证器忽略不同意它的正则表达式特殊字符,但仍然保留正则表达式 奇怪的是,验证器只在某些实例上出错。例如,它标记regex的第二个实例,而不是第一个实例,尽管它们在这里是相同的:转义正则表达式以获取有效的JSON,json,schema,Json,Schema,在我的模式中,我想识别某些模式来限制用户可以输入的数据类型。我使用正则表达式来限制用户可以输入的内容,但是当我尝试使用这样的在线验证器验证JSON时,正则表达式会被标记 有没有办法让验证器忽略不同意它的正则表达式特殊字符,但仍然保留正则表达式 奇怪的是,验证器只在某些实例上出错。例如,它标记regex的第二个实例,而不是第一个实例,尽管它们在这里是相同的: "institutionname": { "type": "string",
"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”说“插入新行”。当你转义斜杠时,你会说“不,真的,我想要一个字面斜杠,接下来的字符不是特殊的”先生,你很有头脑