JavaScript の文字列検索と使い分け
JavaScript で文字列を検索する場合、いくつかの方法が用意されている。
- indexOf
- match
- test
- search
とりあえず違いを表にしてみた。他にも exec とかあった気がするけど、とりあえず。
単純な文字列 | 正規表現 | 戻り値 | クラス | |
---|---|---|---|---|
indexOf | ○ | × | Integer (マッチしたインデックス) | String |
match | △ | ○ | Integer (マッチしたインデックス) | String |
test | △ | ○ | Bool | RegExp |
search | △ | ○ | Integer (マッチしたインデックス) | String |
使い分けとベンチマーク
まずはそれぞれの検索スピードのベンチマークを資料として。
JavaScriptで文字列の有無判定方法の速度ベンチマーク(indexOf、match、test)
ちなみに上記の表で「単純検索」で△が多いのは、正規表現を使って単純検索するとかならできるから・・・みたいな感じです。
次にそれぞれの使い分け方をざっくり書いておく。