気の向くままに辿るIT/ICT/IoT
JavaScript

JavaScript / RegExpオブジェクト

ホーム前へ次へ
ECMAScriptベースのJavaScriptとは?

JavaScript / RegExpオブジェクト

ECMA-262 Edition 5.1 / ECMAScriptベースのJavaScript文法

ECMAScript / ECMA-262 Edition 5.1ベースのJavaScript文法

プロトタイプベースのオブジェクト指向

オブジェクト指向 / オブジェクトと種類

RegExpオブジェクト

 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プロトタイプオブジェクトは、RegExpオブジェクト自身ですが、内部的には、標準組み込みObjectプロトタイプオブジェクトが設定されることになっています。

RegExp.prototypeの標準組み込みメソッド
RegExp.length 一般的な引数の数、2。
RegExp.prototypeインスタンスを生成する関数を返す。既定は、標準組み込みRegExpプロトタイプオブジェクト。

RegExp.prototypeのプロパティ

 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 プロトタイプオブジェクトから値を継承します。

RegExp.prototypeの標準組み込みメソッド
constructor オブジェクトのプロトタイプを生成する関数を指定。
global 文字列内のマッチするもの全て( フラグ g )か、最初にマッチするものだけをテストするか否かを示す true/false のBoolean値。
ignoreCase 文字列内でマッチを試行中に大文字/小文字を無視する( フラグ i )か否かを示す true/false のBoolean値。
lastIndex 次のマッチを開始する位置に当たるインデックス。
 他の標準組み込みプロパティとは異なり、RegExpインスタンスのlastIndexプロパティは、書き込み可能(writable)。
multiline 複数行をまたぐ文字列内で検索する( フラグ m )か否かを示す true/false のBoolean値。
source パターンとなるテキスト。

ECMA-262 Edition 5.1 訳 / 当該仕様ページ例

ECMAScriptベースのJavaScriptリファレンス

ホーム前へ次へ