は、次のコードを考える:RegExと ''文字を使用してJSONを正しく解析する方法
var a = 'somegarbage=http://somesite.com/foo/bar/&moregarbage';
var result = a.match(/http.+\//g);
は、期待される結果を生成します:["http://somesite.com/foo/bar/"]
を今、私はこれを行う場合:
var a = 'somegarbage=http://somesite.com/foo/bar/&moregarbage';
var config = JSON.parse('{"filter":"/http.+\\//g"}'); //notice the extra '\'?
var result = a.match(config.filter);
それはnullを返します。私はそれがJSONで\
の文字列エスケープと関係していると推測します。私は単純な解決策を見逃しているように感じる。これをどうすれば解決できますか?ありがとう。
編集:
また、私はこれを試してみましたが、それは動作しません:
var a = 'somegarbage=http://somesite.com/foo/bar/&moregarbage';
var config = JSON.parse('{"filter":"/http.+\\//g"}'); //notice the extra '\'?
var result = a.match(new RegExp(config.filter));
あなたはそれが文字列であることを私のコード例では見ることができますので、私は非常に従わないのですか? –
はい、文字列です。正規表現ではなく、 'JSON.parse()'は文字列を正規表現に変換しません。したがって、 ''/http。+ \/// g "'を渡すと、正規表現に変換しようとしますが、それはあなたの文字列の中の何ものとも一致しません。私の答えに追加したコードを参照してください。 – jfriend00