ECMAScript / ECMA-262 Edition 5.1ベースのJavaScript文法
RegExpは、正規表現と関連付けたフラグのオブジェクトです。
JavaScriptの正規表現の書式と機能は、プログラミング言語 Perl 5 を参考に定義されています。
var reg_exp1 = new RegExp ( "ECMA\w\sEdition" ) ;
var reg_exp2 = RegExp ( "JavaScript .* ECMAScript$" , m ) ;
RegExpオブジェクトは、new 演算子を伴うコンストラクタとしての呼び出しの場合、インスタンスであるオブジェクトを生成、初期化(インスタンス化)し、( new 演算子を伴わない)関数としての呼び出しの場合、標準組み込みRegExpコンストラクタを呼んだ結果を返します。
正規表現フラグ | ||
---|---|---|
フラグ | 語源 | 意味 |
g | global match | マッチするパターン全てを対象とする |
i | ignore case | 大文字、小文字の違いを無視する |
m | multiple lines | 先頭と末尾(^、$)が複数行にまたいでマッチ |
引数は、1つ、または、2つ取り、第1引数は、正規表現パターン、第2引数は、正規表現フラグです。
尚、エスケープには、バックスラッシュ \ を使用するものの引数であるパターンが文字列である場合、通常、エスケープシーケンスの置換は、RegExpオブジェクトで処理される前に実行されますが、RegExpオブジェクトで処理する為にそこで削除されないようにする為のエスケープ文字を含む場合、そのエスケープに使うバックスラッシュもエスケープする必要があります。
RegExpオブジェクトの組み込みプロパティは、下記の通りです。
RegExpプロトタイプオブジェクトは、RegExpオブジェクト自身ですが、内部的には、標準組み込みObjectプロトタイプオブジェクトが設定されることになっています。
RegExp.prototypeの標準組み込みメソッド | |
---|---|
RegExp.length | 一般的な引数の数、2。 |
RegExp.prototype | インスタンスを生成する関数を返す。既定は、標準組み込みRegExpプロトタイプオブジェクト。 |
RegExpコンストラクタは、内部的には、標準組み込みFunctionプロトタイプオブジェクトが設定されることになっています。
RegExp.prototypeオブジェクトの組み込みプロパティは、下記の通りです。
RegExp.prototypeの標準組み込みメソッド | |
---|---|
RegExp.prototype.constructor | インスタンスを生成する関数を返す。既定は、標準組み込みRegExpコンストラクタ。 |
RegExp.prototype.exec ( ) | 引数で指定した文字列パラメータ内でマッチ検索を実行するメソッド。 マッチした場合、当該文字列、マッチしない場合、nullを返す。 |
RegExp.prototype.test ( ) | 引数で指定した文字列パラメータ内でマッチするか否かを示す true/false のBoolean値を返すメソッド。 内部的には、RegExp.prototype.exec ( )を実行した結果、nullならtrue、それ以外はfalseを返す。 |
RegExp.prototype.toString ( ) | スラッシュに続けて、RegExp オブジェクト this キーワードの source プロパティの値、更にスラッシュ、 global プロパティ、ignoreCase プロパティ、multiline プロパティがtrueの場合、それぞれ g , i , m を連結した文字列を返す。 /regex/gim |
RegExpプロトタイプオブジェクトは、その自身の valueOf プロパティは持ちませんが、ObjectプロトタイプオブジェクトからvalueOf プロパティを継承します。
RegExpインスタンスのプロパティは、RegExp プロトタイプオブジェクトから値を継承します。
RegExp.prototypeの標準組み込みメソッド | |
---|---|
constructor | オブジェクトのプロトタイプを生成する関数を指定。 |
global | 文字列内のマッチするもの全て( フラグ g )か、最初にマッチするものだけをテストするか否かを示す true/false のBoolean値。 |
ignoreCase | 文字列内でマッチを試行中に大文字/小文字を無視する( フラグ i )か否かを示す true/false のBoolean値。 |
lastIndex | 次のマッチを開始する位置に当たるインデックス。 他の標準組み込みプロパティとは異なり、RegExpインスタンスのlastIndexプロパティは、書き込み可能(writable)。 |
multiline | 複数行をまたぐ文字列内で検索する( フラグ m )か否かを示す true/false のBoolean値。 |
source | パターンとなるテキスト。 |