String.prototype.search()

概要

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

構文

str.search(regexp)

引数

regexp
正規表現 (RegExp) オブジェクトを引数に取ります。 RegExp オブジェクトではないオブジェクトが渡された場合、内部的に new RegExp(obj) が用いられ、 RegExp オブジェクトに暗黙的に変換されます。

戻り値

integer
マッチした場合、文字列内でマッチした箇所のインデックスを返します。マッチしなかった場合は、-1を返します。

説明

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

テストが成功したかどうかのメッセージを出力する関数の例を以下に示します。

function testinput(re, str) {
  var midstring;
  if (str.search(re) != -1) {
    midstring = ' contains ';
  } else {
    midstring = ' does not contain ';
  }
  console.log(str + midstring + re);
}

Specifications

Specification Status Comment
ECMAScript 3rd Edition (ECMA-262) Standard Initial definition. Implemented in JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
The definition of 'String.prototype.search' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'String.prototype.search' in that specification.
Standard  

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (有) (有) (有) (有) (有)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (有) (有) (有) (有)

Gecko-specific notes

  • Prior to Gecko 8.0search() was implemented incorrectly; when it was called with no parameters or with undefined, it would match against the string 'undefined', instead of matching against the empty string. This is fixed; now'a'.search() and 'a'.search(undefined) correctly return 0.
  • Starting with Gecko 39 (Firefox 39 / Thunderbird 39 / SeaMonkey 2.36), the non-standard flags argument is deprecated and throws a console warning (バグ 1142351). This property is Gecko-only and will be removed in the future.

See also

 

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

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