正規表現にマッチした文字列のインデックスを取得する(String.prototype.search)

String オブジェクトのインスタンスメソッドである search は、対象の文字列が正規表現とマッチした場合、マッチした最初の文字列の先頭文字のインデックスを返します。ここでは String オブジェクトの search メソッドの使い方について解説します。

(Last modified: )

searchメソッドの使い方

String オブジェクトの search メソッドは、対象となる文字列が正規表現とマッチした場合に、マッチした最初の文字列のインデックスを返します。書式は次の通りです。

文字列.search(正規表現オブジェクト)

文字列が引数に指定した正規表現がマッチした場合 最初にマッチした文字列の先頭文字のインデックスを返します。マッチしなかった場合は -1 を返します。インデックスは対象の文字列の先頭文字が 0 、次の文字が 1 、と続いていきます。

次のサンプルをみてください。

let regexp = /ball/;
let str1 = 'baseball and football';
let str2 = 'Make a cake tomorrow';

console.log(str1.search(regexp));
>> 4
console.log(str2.search(regexp));
>> -1

最初の文字列は正規表現にマッチします。対象の文字列では正規表現にマッチする箇所が 2 つありますが、最初にマッチした文字列の先頭文字のインデックスである 4 が返されます。次の文字列は正規表現にマッチしないため -1 が返されました。

searchメソッドの使い方(1)

同じような目的で利用されるメソッドとして RegExp オブジェクトの test メソッドがあります。詳しくは「文字列が正規表現とマッチするかテストする(RegExp.prototype.test)」を参照されてください。

-- --

String オブジェクトの search メソッドの使い方について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。