【Javascript】文字列内を検索し出現位置を取得する。

指定文字列を検索し、最も初めにヒットした位置が何文字目かを取得する方法。PHPでいうとstrpos()とかstripos()みたいなことをJavascriptでやりたい場合。

indexOf()、lastIndexOf()を用いる。

■indexOf(needle, index)
文字列の先頭からneedleを検索し、一番最初にヒットした位置を返却する。
indexが指定された場合、その位置から文字列の末端に向かって検索を開始する。
ヒットしなかった場合は-1を返却する。

■lastIndexOf(needle, index)
文字列の末端から遡ってneedleを検索し、一番最初にヒットした位置を返却する。
indexが指定された場合、その位置から文字列の先頭に向かって検索を開始する。
※返却される数値は先頭から数えた位置である点に注意
ヒットしなかった場合は-1を返却する。

 

以下例。

var str = 'abcdefghijklmnopqrstuvwxyz';

var pos = str.indexOf('i'); // 8
var l_pos = str.lastIndexOf('i'); // 8
var pos_i = str.indexOf('i', 9); // -1
var l_pos_i = str.lastIndexOf('i', 9); // 8
var pos_i_2 = str.indexOf('i', 7); // 8
var l_pos_i_2 = str.lastIndexOf('i', 7); // -1