今回はJavaScript「〜を含む」メソッドの使い分けについてまとめたいと思います。
■メソッドの種類と使い分け
メソッド | 検索ワード | 戻り値 |
---|---|---|
includes | 通常の文字 | boolean |
indexOf | 通常の文字 | 文字列、出現位置 |
test | 正規表現 | boolean |
match | 正規表現 | 文字列、出現位置 |
search | 通常の文字 or 正規表現どちらでも | 文字列、出現位置 |
基本的にbooleanだけを返すメソッドの方が軽いと思われる。
そのためマッチパターンや出現位置を知る必要がなければ、booleanの方を選択すれば良い
■正規表現を使うメリット
一撃で複雑な文字列パターンの指示を送ることができます。
ユーザーからの入力等、いくつかのパターンを許可したい場合は正規表現を使う。
単純にコードの中で「この値が含まれているか?」だけであれば、通常の文字列での比較で良い。
単純な比較例
const lang = "ja"
if(lang.includes("ja")) {
console.log("こんにちは")
} else {
console.log("Hello")
};
■どこまで見るか?
正規表現でg
をつけると、一致するものを全て見てくれる。
const sampleText = "あいうえお あいうえお あいうえお"
const matchText = mystr.match(/あ/);
const allMatchText = mystr.match(/あ/g);
//最初にマッチしたものだけ抽出
console.log(matchText); //["あ"]
//マッチしたもの全て抽出
console.log(allMatchText); //["あ","あ","あ"]
■参考資料