JavaScriptの文字列一致メソッドのクイックガイド
提供:Dev Guides
String.prototype.match()
(別名:文字列のmatchメソッド)を使用すると、文字列または任意のデータが一致した場合に、文字列を切り替えたり、条件を設定したりできます。 次に、そのデータを新しい配列に格納します。
最初に構文、次に説明:
let newArray = string.match(condition);
用語
文字列match()
メソッドは、文字列内で見つかった提供されたregular expression
から一致する項目を含む配列を返します。 JavaScriptの正規表現について詳しくは、こちらをご覧ください。
すべての条件が一致すると、それらの結果が新しい配列に格納されることを忘れないでください。
次の例を見てください。
const intro = "Hello Alligators, Hello Devs, how are you?" const regex = /Hello/g; const greeting = intro.match(regex);
上記の配列は、["Hello", "Hello"]
のようになります。 これは、一致させようとしている正確な文字列がわかっている場合は問題なく機能しますが、動的コンテンツや実際のユースケースについてはどうでしょうか。
文字列内で繰り返される文字を見つける簡単な例を次に示します。
const str = 'See you later, Alligator! Not so soon baboon!'; const matches = str.match(/([a-z])\1+/gi); console.log('H' + matches.join("")); // "Heelloooo"
これらは単純な例ですが、正規表現について深く学ぶほど、この文字列メソッドはより強力になります。 感度の低い場合にi
を使用するだけで、matchメソッドでより多くのエントリを強調表示できます。
一致方法には3つのモードがあります…
- 1st :
g
(グローバル)フラグが正規表現に使用されている場合、すべての結果が配列に格納されます。 - 2nd :
g
フラグが使用されていない場合、最初の一致は、最初に一致した式のインデックス、完全な入力、およびキャプチャグループを共有するキー/値を持つ配列を返します。 つまり、RegExp.exec()
を使用した場合と同じ結果になります。
let newYear = "Happy New Year"; let results = newYear.match(/new/i); // [ 'New', index: 6, input: 'Happy New Year', groups: undefined ]
- 3rd :一致するものがない場合、メソッドは
null
を返すか、次のコードで空の配列を返します。
let results = newYear.match(regex) || [];
結論
一致は、段落からキーワードを引き出したり、条件が正規表現に一致する場合に単語を置き換えたりするなど、多くの創造的な方法で使用できる楽しい小さな方法です。 JavaScriptの正規表現について学ぶ時間を取ってください。 それはあなたにとってマッチをさらに便利にするでしょう。