W moim schemacie chcę rozpoznać pewne wzorce, aby ograniczyć typ danych, które użytkownik może wprowadzić. Używam wyrażenia regularnego, aby ograniczyć to, co użytkownik może wprowadzić, ale wyrażenie regularne zostanie oflagowane, gdy próbuję sprawdzić poprawność JSON za pomocą walidatora online, takiego jak ten one.Uciekający Regex, aby uzyskać poprawny JSON
Czy istnieje sposób, aby weryfikator zignorował znaki specjalne regex, które nie zgadzają się z nim, ale nadal zachowuje wyrażenie regularne?
Dziwne jest to, że walidator uruchamia się tylko w określonych przypadkach. Na przykład, flagi drugim i nie pierwszy przypadek regex mimo nich jest identyczna tutaj:
"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"
},
Musisz uciec przed odwrotnym ukośnikiem poprzedzając go innym odwrotnym ukośnikiem: '"^[A-Za-z0-9 \\ s] + $ "'. JSONLint oznaczył oba wystąpienia, gdy próbowałem. –
Jak bym tego uniknął: "wzorzec": "^ [A-Za-z \ s] + [^ 0-9A-Z + \\\ _ \ - \ ~ \' \! \ @ \ # \ $ \% \^\ & \ * \ (\) \ + \ = \ {\} \ [\] \; \: \ '\ "\ <\> \, \. \? \/\ |] $" – goldisfine
Double escape the all "\\", jak w moim przykładzie. Wiele z tych postaci, które udało ci się uciec, znajduje się w klasie postaci, więc i tak nie musisz uciekać. –