親切にも、私はregexpに関して他のSO投稿からいくつかの提案を試みましたが、何も助けませんでした!!! は質問に来る -文字列として返されるRegexの扱い方は?
私は(元:https://api.myjson.com/bins/fvzpp):このようなJSONデータを持っている
{
VISA: {
cardPattern: "/^4/",
cardNumberLength: 16,
cvv: "required",
cvvLength: 3,
displayText: "Visa"
},
MASTERCARD: {
cardPattern: "/^5[1-5]/",
cardNumberLength: 16,
cvv: "required",
cvvLength: 3,
displayText: "Master"
},
MAESTRO: {
cardPattern:
"/^(50|63|66|5[6-8]|6[8-9]|600[0-9]|6010|601[2-9]|60[2-9]|61|620|621|6220|6221[0-1])/",
cardNumberLength: 19,
cvv: "optional",
cvvLength: 4,
displayText: "Maestro"
}
}
は、文字列形式であるcardPatternプロパティを参照してくださいしてください。どのように私は文字列をテストするために同じものを使用するのですか(例えば445)。 たとえば、 "/^4/".test(mysttring)は機能しません。また var reg = new RegExp( "/^4 /")は、ミストリングと決して一致しない奇妙な//^4 //を返します。 このような正規表現の応答を処理する方法は?より明確にするには、応答['VISA']を処理するにはどうすればよいはずですか?cardPattern.test(4545)
また、レスポンスはJSON形式ではなく、オブジェクト内部のオブジェクトです。そのような応答を解析する最善の方法は何ですか?私はfor-inループを試しましたが、それは 'VISA'、 'MASTERCARD'、そして 'MAESTRO'(文字列)を返します。
この/^4/.testようにしてみてください(...)または新しいRegExp( "^ 4") –
@AdarshMohan - これは重要なことではありません。呼び出しの例からの対処方法 - レスポンス['VISA']。cardPattern.test(4545)?それはうまくいかなければならないが、!!! –
先頭と末尾のスラッシュを削除し、RegExpの引数として新しいRegExp(response.VISA.cardPettern.replace( "/"、 "")replace(/ \/$ /、 ""))のように渡します。テスト(4545);多分あなたは2つの置換を単一の正規表現と組み合わせることができます –