言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

JavaScript辞典

  1. トップページ
  2. JavaScript辞典
  3. 正規表現.test() / exec()

正規表現.test() / exec()

正規表現オブジェクトのメソッドで、文字列が正規表現のパターンに一致するかどうかを判定します。『test()』は真偽値を返し、『exec()』は一致した詳細情報を返します。

構文

// パターンに一致するかを判定します。
var result = 正規表現.test("文字列");

// 一致した詳細情報を取得します。
var match = 正規表現.exec("文字列");

メソッド一覧

メソッド概要
正規表現.test("文字列")文字列がパターンに一致すれば『true』、一致しなければ『false』を返します。単純な一致判定に適しています。
正規表現.exec("文字列")最初に一致した部分の詳細情報を配列で返します。一致しなかった場合は『null』を返します。キャプチャグループの内容やマッチ位置も取得できます。

よく使う正規表現パターン

パターン概要
^文字列の先頭に一致します。
$文字列の末尾に一致します。
.任意の1文字に一致します。
*直前のパターンの0回以上の繰り返しに一致します。
+直前のパターンの1回以上の繰り返しに一致します。
\d数字1文字に一致します。『[0-9]』と同じ意味です。
\w英数字またはアンダースコア1文字に一致します。
[abc]『a』『b』『c』のいずれか1文字に一致します。
(パターン)グループ化します。一致した部分をキャプチャグループとして取得できます。

サンプルコード

// test()で一致判定を行う例
var pattern = /^\d{3}-\d{4}$/; // 郵便番号の形式を定義します。
console.log(pattern.test("123-4567")); // 『true』と出力されます。
console.log(pattern.test("abc-defg")); // 『false』と出力されます。
console.log(pattern.test("12-345"));   // 『false』と出力されます。

// exec()で詳細情報を取得する例
var emailPattern = /(\w+)@(\w+\.\w+)/;
var result = emailPattern.exec("連絡先: taro@example.com です");
console.log(result[0]); // 『taro@example.com』と出力されます。一致した文字列全体です。
console.log(result[1]); // 『taro』と出力されます。1つ目のキャプチャグループです。
console.log(result[2]); // 『example.com』と出力されます。2つ目のキャプチャグループです。
console.log(result.index); // 『4』と出力されます。一致した開始位置です。

// 一致しない場合
var noMatch = emailPattern.exec("メールアドレスなし");
console.log(noMatch); // 『null』と出力されます。

概要

『正規表現.test()』は文字列がパターンに一致するかどうかを『true』か『false』で返す、最もシンプルなマッチングメソッドです。入力値のバリデーションや条件分岐に適しており、一致するかどうかだけを知りたい場合に使用します。

『正規表現.exec()』は一致した文字列の詳細情報を配列で返します。配列の『[0]』には一致した文字列全体、『[1]』以降にはキャプチャグループの内容が格納されます。さらに『index』プロパティで一致した位置を取得できるため、文字列の解析やデータの抽出に適しています。

正規表現のパターンはスラッシュ『/』で囲んで記述します。末尾に『g』フラグを付けるとグローバル検索、『i』フラグを付けると大文字・小文字を区別しない検索になります。文字列側のメソッドで正規表現を使う場合は『文字列.match() / matchAll() / search()』を参照してください。

対応ブラウザ

Chrome Chrome
49 以降
全バージョンで対応しています
Firefox Firefox
57 以降
全バージョンで対応しています
Safari Safari
18 以降
全バージョンで対応しています
Edge Edge
80 以降
11 以前 ×
IE IE
11 以降
3 以前 ×
Opera Opera
48 以降
4 以前 ×
iOS Safari iOS Safari
18 以降
全バージョンで対応しています
Android Browser Android Browser
37 以降
4 以前 ×
Chrome Android Chrome Android
36 以降
17 以前 ×
Firefox Android Firefox Android
79 以降
3 以前 ×

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。