ywork2020.com

Title

検索に該当する文字の開始位置を取得する

目次 (INDEX)

searchとは

ここで説明するsearch とは次の語句からなるjavascriptのメソッドです。
search
読み: サーチ
意味: 検索、探す、探索

目次に戻る

searchメソッドの概要

このメソッドは、検索される文字列の中から、 正規表現パターンに一致する部分がインデックスとして何番目からスタートしているかを数値として返します。

パターンに該当するものがなければ、-1を返します。

引数に与える正規表現パターンは、正規表現オブジェクト、正規表現パターン、文字列パターンの何れかとなります。 文字列パターンを与えた場合には、暗黙的に新しい正規表現オブジェクトを生成します。

類似メソッド: indexOf()

目次に戻る

構文

サンプルを見る前に構文を確認しておきます。

var searchIndex = str.search(##RegExp);
var searchIndex = str.search(/Pattern/flag);
var searchIndex = str.search("Pattern");

目次に戻る

サンプルコードと実行結果

ここでは、"ABCDEFGHIJKLMNOPatternQRSTUVWXYZ"という文字列から"Pattern"という文字に該当する部分が インデックスとして何番目からスタートしているかを求めます。

サンプルコード: HTML
<body>
	<div id="idInd">01234567890123456789012345678901</div>
	<div id="idStr">ABCDEFGHIJKLMNOPatternQRSTUVWXYZ</div>
	<p>
		search(/Pattern/g) の結果:
		<script>...</script>
	</p>
</body>
  • 03: 検索対象 (id="idStr")
  • 06: script (スクリプトを実行して結果を出力します。)
サンプルコード: script
<script>
	let elmStr = document.getElementById("idStr");
	let objRegExp = new RegExp(/Pattern/flag=g);
	document.write(elmStr.innerText.search(objRegExp));
</script>
  • 03: objRegExp (RegExpオブジェクトを生成しています。)
  • 04: document.write (文書ストリームに結果を書き出しています。)
実行結果:
01234567890123456789012345678901
ABCDEFGHIJKLMNOPatternQRSTUVWXYZ

search(/Pattern/g) の結果:

目次に戻る