RegExp.prototype.test()

  • リビジョンの URL スラッグ: Web/JavaScript/Reference/Global_Objects/RegExp/test
  • リビジョンのタイトル: RegExp.test
  • リビジョンの ID: 419907
  • 作成日:
  • 作成者: ethertank
  • 現行リビジョン いいえ
  • コメント マークアップの修正Moved From JavaScript/Reference/Global_Objects/RegExp/test to Web/JavaScript/Reference/Global_Objects/RegExp/test

このリビジョンの内容

概要

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

RegExp のメソッド
実装されたバージョン JavaScript 1.2
ECMAScript エディション ECMAScript 3rd Edition

構文

result = regexp.test('str');

引数

regexp
正規表現リテラル、または変数
str
マッチさせる正規表現文字列

説明

あるパターンがある文字列内で見つかるかどうか調べたいときに、test メソッドを使ってください(似たメソッドとして、 String.search メソッドがあります)。より多くの情報を得るためには(実行が遅くなりますが)、 exec メソッドを使ってください(似たメソッドとして、 String.match メソッドがあります)。

{{gecko_callout_heading("8.0")}}

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

例: test メソッドの使用例

正規表現リテラルと対象文字列を引数にとり、マッチ結果により異なる文字列を表示する関数を以下に示します。

function testinput(re, str) {
  var midstring;

  if ( re.test(str) ) {
    midstring = " contains ";
  } else {
    midstring = " does not contain ";
  }

  alert(str + midstring + re.source);
}

このリビジョンのソースコード

<h2 id="Summary" name="Summary">概要</h2>

<p>正規表現と対象の文字列の間のマッチを調べるための検索を実行し、結果を示す真偽値 ( <code>true</code> / <code>false</code> )を返します。</p>
<table class="standard-table">
  <thead>
    <tr>
      <th class="header" colspan="2"><a href="/ja/docs/JavaScript/Reference/Global_Objects/RegExp" title="JavaScript/Reference/Global_Objects/RegExp"><code>RegExp</code></a> のメソッド</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>実装されたバージョン</td>
      <td>JavaScript 1.2</td>
    </tr>
    <tr>
      <td>ECMAScript エディション</td>
      <td>ECMAScript 3rd Edition</td>
    </tr>
  </tbody>
</table>

<h2 id="Syntax" name="Syntax">構文</h2>

<pre class="syntaxbox">
<var>result</var> = <var>regexp</var>.test('<var>str</var>');</pre>
<h3 id="Parameters" name="Parameters">引数</h3>
<dl>
  <dt>
    <code>regexp</code></dt>
  <dd>
    正規表現リテラル、または変数</dd>
  <dt>
    <code>str</code></dt>
  <dd>
    マッチさせる正規表現文字列</dd>
</dl>


<h2 id="Description" name="Description">説明</h2>

<p>あるパターンがある文字列内で見つかるかどうか調べたいときに、<code>test</code> メソッドを使ってください(似たメソッドとして、 <a href="/ja/docs/JavaScript/Reference/Global_Objects/String/search"><code>String.search</code></a> メソッドがあります)。より多くの情報を得るためには(実行が遅くなりますが)、 <a href="/ja/docs/JavaScript/Reference/Global_Objects/RegExp/exec"><code>exec</code></a> メソッドを使ってください(似たメソッドとして、 <a href="/ja/docs/JavaScript/Reference/Global_Objects/String/match"><code>String.match</code></a> メソッドがあります)。</p>


<div class="geckoVersionNote">
  <div>{{gecko_callout_heading("8.0")}}</div>
  <p>Gecko 8.0 {{geckoRelease("8.0")}} 以前では、 <code>test()</code> メソッドは正しく実装されていませんでした。引数無しで呼び出された場合には以前の RegExp.input プロパティの値に基づく戻り値が返されなくてはなりませんが、文字列 "undefined" に対するテスト結果を返していました。これは現行バージョンでは修正されており、現在 <code>/undefined/.test()</code> の戻り値はエラーでなく <code>true</code> となっています。</p>
</div>
<h2 id="Examples" name="Examples"><code>例</code></h2>

<h3 id="Example:_Using_test" name="Example:_Using_test">例: <code>test</code> メソッドの使用例</h3>
<p>正規表現リテラルと対象文字列を引数にとり、マッチ結果により異なる文字列を表示する関数を以下に示します。</p>
<pre class="brush: js">
function testinput(re, str) {
  var midstring;

  if ( re.test(str) ) {
    midstring = " contains ";
  } else {
    midstring = " does not contain ";
  }

  alert(str + midstring + re.source);
}</pre>
Revert to this revision