2016-04-01 3 views
0

JavaScriptで、正規表現の特定のフラグがサポートされているかどうかを確認するにはどうすればよいですか?
いくつかの新しいフラグについては、「無効な正規表現フラグ」エラーが発生し続けます。Javascriptの正規表現チェックフラグのサポート

+0

'いくつかの新しいフラグについては、それらを列挙できますか? –

+0

JSで使用可能なすべてのフラグとその使用方法は、https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Advanced_searching_with_flags – Redu

+0

に記載されています。 – Michael

答えて

1

RegExpコンストラクタを使用できます。構文エラーを防ぎ、実行を中止せずにオプションでそのフラグを検出して使用することができます。

function isRegExpFlagSupported() { 
    try { 
     var regexp = new RegExp("foo.*bar", "s"); 
     return true; 
    } catch (ex) { 
     return false; 
    } 
} 

あなたはそれをこのような外部のtry-catchブロックを実行すると、

var regexp = new RegExp("foo.*bar", "s"); 

それがエラー "無効な正規表現フラグs" をスローします。

0

正規表現の構成がわからない場合は、文字列に変換して正規表現を使用して、最後の/文字の後ろの文字をキャプチャできます。 Like /test/gi.toString().match(/\w*$/); // <- ["gi"]