search() メソッドは、対象の String オブジェクトが正規表現でマッチできるかどうかを調べるためのメソッドです。

構文

str.search(regexp)

引数

regexp
正規表現オブジェクトです。正規表現でないオブジェクト obj が渡された場合は new RegExp(obj) を使って RegExp オブジェクトに暗黙的に変換されます。

戻り値

与えられた文字列と正規表現の間で最初にマッチした箇所のインデックスを返します。マッチしなかった場合は -1 を返します。

説明

文字列の中で特定のパターンが存在するかどうかを知りたい場合、search() メソッドを利用してください(存在の有無を知りたいだけの場合は同様のメソッドとして、RegExp プロトタイプに boolean を返す test() メソッドがあります)。より多くの情報が欲しい場合は、(実行速度が遅くなりますが)match() メソッドを使用してください(同様のメソッドとして、exec() メソッドがあります)。

次の例は 2 つの異なる正規表現オブジェクトを含む文字列を検索し、成功した検索(正の値)と失敗した検索(-1)を表示します。

var str = "hey JudE";
var re = /[A-Z]/g;
var re2 = /[.]/g;
console.log(str.search(re)); // returns 4, which is the index of the first capital letter "J"
console.log(str.search(re2)); // returns -1 cannot find '.' dot punctuation

仕様

仕様 ステータス コメント
ECMAScript 3rd Edition (ECMA-262) 標準 初期定義。JavaScript 1.2 で実装。
ECMAScript 5.1 (ECMA-262)
String.prototype.search の定義
標準  
ECMAScript 2015 (6th Edition, ECMA-262)
String.prototype.search の定義
標準  
ECMAScript Latest Draft (ECMA-262)
String.prototype.search の定義
ドラフト  

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
基本対応Chrome 完全対応 ありEdge 完全対応 ありFirefox 完全対応 1IE 完全対応 ありOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 ありnodejs 完全対応 あり
flags
非推奨非標準
Chrome 未対応 なしEdge 未対応 なしFirefox 未対応 1 — 49IE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 未対応 なしChrome Android 未対応 なしEdge Mobile 未対応 なしFirefox Android 未対応 4 — 49Opera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 未対応 なしnodejs 未対応 なし

凡例

完全対応  
完全対応
未対応  
未対応
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非推奨。新しいウェブサイトでは使用しないでください。
非推奨。新しいウェブサイトでは使用しないでください。

Gecko 特有の注記

  • flags は Gecko でのみ利用可能な非標準の2番目の引数でした: str.search(regexp, flags)
  • Gecko 8.0 以下では、search() は不正確な実装になっています。引数を渡さなかったり、undefined が渡されたりして呼び出された場合、空文字に対するマッチではなく、'undefined' 文字列に対するマッチを返します。これは修正され、現在は 'a'.search()'a'.search(undefined) は正確に 0 を返します。
  • Gecko 39 (Firefox 39 / Thunderbird 39 / SeaMonkey 2.36) から、非標準の flags 引数が非推奨になり、コンソール警告をスローします(バグ 1142351)。
  • Gecko 47 (Firefox 47 / Thunderbird 47 / SeaMonkey 2.44) から、非リリースビルドで非標準の flags 引数がサポートされなくなり、近いうちに全体から削除される予定です(バグ 1245801)。
  • Gecko 49 (Firefox 49 / Thunderbird 49 / SeaMonkey 2.46) から、非標準の flags 引数はサポートされなくなりました(バグ 1108382)。

関連項目

ドキュメントのタグと貢献者

このページの貢献者: segayuu, YuichiNukiyama, mamodayo, teoli, ethertank, Mgjbot, Potappo
最終更新者: segayuu,