2013-07-11 14 views
16

私のスキーマでは、ユーザーが入力できるデータの種類を制限するために、特定のパターンを認識したいと考えています。正規表現を使用してユーザーが入力できる内容を制限しますが、oneのようなオンラインバリデーターを使用してJSONを検証しようとすると、正規表現にフラグが立てられます。Regexをエスケープして有効なJSONを取得する

バリエーターにそれに同意しない正規表現の特殊文字を無視させる方法はありますか?

奇妙なことは、バリデーターが特定のインスタンスでのみトリップすることです。例えば、それらにもかかわらず、そのフラグ正規表現の最初のインスタンス二及びませんが、同一のここにいる:\の進エンコーディングである%5Cを使用して、あなたがそれらをコードする可能性の検証をめちゃくちゃにされている

  "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" 
      }, 
+1

別のバックスラッシュを前に付けてバックスラッシュをエスケープする必要があります: ''^[A-Za-z0-9 \\ s] + $ "'。私が試したときにJSONLintは両方のインスタンスにフラグを立てました。 –

+0

どのように私はこれをエスケープしますか: "パターン": "[[A-Za-z \ s] + [^ 0-9A-Z + \\\ _ \ - \〜\' \!\ @ \#\ $ \% \^\&\ * \(\)\ + \ = \ {\} \ [\] \; \:\ '\ "\ <\> \、\ \ \/\ |] $。?" – goldisfine

+1

ダブルは、すべてを逃れます私の例のように '\\'。あなたがエスケープした文字の多くは文字クラスの中にあるので、とにかくエスケープする必要はありません –

答えて

15

そのわずかスラッシュまたはマイク・Wは、あなたが\\のように脱出した後、あなたはちょうどあなたが彼らに

0

を使用したいとき、私はこれが古い質問ですけど、私は誰のためにこれを行うための簡単な方法を共有しましょうそれらをデコードすることができ倍増でした言いますこの問題にぶつかります

基本的に、これを行うもう1つの方法は、単にRegExpリテラルオブジェクトを作成し、その.sourceプロパティにアクセスすることです。

関連する問題