RegExp.prototype.test()

test() メソッドは、正規表現と対象の文字列の間のマッチを調べるための検索を実行し、結果を示す真偽値 ( true / false )を返します。

構文

regexObj.test(str)

引数

str
正規表現にマッチさせる文字列。

戻り値

正規表現と指定した文字列がマッチした場合は、true。そうでない場合は、false

説明

あるパターンがある文字列内で見つかるかどうか調べたいときに、test() メソッドを使ってください(似たメソッドとして、String.prototype.search() メソッドがあります。test は boolean を返しますが、search は見つかった場合はインデックスを、見つからない場合は -1 を返す点が異なります)。より多くの情報を得るためには(実行が遅くなりますが)、exec() メソッドを使ってください(似たメソッドとして、String.prototype.match() メソッドがあります)。exec() と同様に(またはこれとコンビで)、test() が同じグローバル正規表現インスタンスで複数回呼び出されると、前回のマッチの先に進むことになります。

例: test() メソッドの使用例

次の例では、テストの成否によってメッセージを表示します。

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

仕様

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

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート (有) (有) (有) (有) (有)
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート (有) (有) (有) (有) (有) (有)

Gecko 特有の注記

Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5) 以前では、 test() メソッドは正しく実装されていませんでした。引数無しで呼び出された場合には以前の入力( RegExp.input プロパティ)の値に基づく戻り値が返されなくてはなりませんが、文字列 "undefined" に対するテスト結果を返していました。これは現行バージョンでは修正されており、現在 /undefined/.test() の戻り値はエラーでなく true となっています。

関連項目

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

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