web-dev-qa-db-ja.com

正規表現をエスケープして有効なJSONを取得する

私のスキーマでは、特定のパターンを認識して、ユーザーが入力できるデータのタイプを制限したいと考えています。ユーザーが入力できるものを制限するために正規表現を使用しますが、この one のようなオンライン検証ツールを使用してJSONを検証しようとすると、正規表現にフラグが付けられます。

バリデーターに同意しない正規表現の特殊文字を無視しても、正規表現を保持する方法はありますか?

奇妙なことは、バリデーターが特定のインスタンスでのみトリップすることです。たとえば、ここでは同一であるにもかかわらず、正規表現の最初のインスタンスではなく、2番目のインスタンスにフラグを立てます。

            "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"
            },
27
goldisfine

%5Cの16進エンコードである\またはMike Wが\\のように二重にエスケープできると言っているものを使用してエンコードできる検証を台無しにしているスラッシュ使用したいときにデコードするだけです

29
Legion

受け入れられた答えは私にはうまくいきません。 _%5C_はリンターではうまく機能しません。さらに、手動でそれを行うことは仕事です。非常に長い正規表現はどうですか-

^(([^<>()[\\]\\.,;:\\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

リンクが今後機能しない場合は、他のオンラインツールを見つけてください:)

0
kushalvm