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
となっています。