regex.test V.S. string.matchは、文字列が正規表現に一致するかどうかを確認します



Regex Test V S String



解決:

基本的な使用法

まず、各関数の機能を見てみましょう。

regexObjectテスト (( )。



正規表現と指定された文字列の間の一致の検索を実行します。戻り値 NS また NS

ストリングマッチ (( RegExp )。



文字列を正規表現と照合するときに一致を取得するために使用されます。一致する配列を返すか、ない場合はnull。

以来nullは次のように評価されますNS、

if(string.match(regex)){//一致しました。 } else {//一致しません。 }

パフォーマンス

性能に違いはありますか?



はい 。 MDNサイトでこの短いメモを見つけました:

文字列が正規表現regexpと一致するかどうかを知る必要がある場合は、regexp.test(string)を使用してください。

違いは重要ですか?

もう一度答えは はい !私がまとめたこのjsPerfは、違いが 〜30%〜〜60% ブラウザによって異なります:

テストvsマッチ|性能試験

結論

使用するより高速なブールチェックが必要な場合は.test。使用する.matchを使用すると、すべての一致を取得します。gグローバルフラグ。


正規表現のグローバルフラグを考慮することを忘れないでください:

var reg = / abc / g; !! 'abcdefghi'.match(reg); // => true !! 'abcdefghi'.match(reg); // => true reg.test( 'abcdefghi'); // => true reg.test( 'abcdefghi'); // => false<=  

これは、新しい一致が見つかったときにRegexpがlastIndexを追跡するためです。