44

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

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

奇怪的是,验证器只在某些情况下出错。例如,它标记第二个而不是第一个正则表达式实例,尽管它们在这里是相同的:

            "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"
            },
4

2 回答 2

41

它只是弄乱了验证的斜线,你可以使用它来编码它们,%5C这是十六进制编码,\或者 Mike W 说你可以像双重转义一样\\ ,然后你可以在你想使用它们时解码它们

于 2013-07-11T15:23:04.820 回答
6

接受的答案对我不起作用。%5C不适用于 linter。加上手动完成它是一项工作。一个很长的正则表达式怎么样 -

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

所以,请不要自杀并前往完成这项工作 - https://www.freeformatter.com/json-escape.html#ad-output

万一该链接将来不起作用,请查找其他在线工具:)

于 2019-08-06T12:16:52.850 回答