質問: new RegExp("=\s*TEST\s*=", "g"); if (re.test(moji)) { console.log("match1!"); } if (moji.match(/=\s*TEST\s*=/)) { console.log("match2!"); } ``` "match2!"しかロギングされません。 ### 補足情報(言語/FW/ツール等のバージョンなど) 以下のブラウザで動作確認をしましたが、いずれも同様の結果となりました。 Chrome:54.0.2840.71 m (64-bit) FireFox:49.0.2 IE:11.0.9600.18499
回答: 文字列リテラルにおいても `\` はメタキャラクタです。 従って、文字列リテラルのエスケープシーケンスが適用されます。 ``` var re = new RegExp("=\\s*TEST\\s*=", "g"); console.log("=\s*TEST\s*="); // "=s*TESTs*=" console.log("=\\s*TEST\\s*="); // "=\s*TEST\s*=" console.log(re); // /=\s*TEST\s*=/g ``` Re: taka.nico さん