Regular Expression オブジェクト
正規表現パターンとそのパターンの適用方法を識別するフラグを含むオブジェクトです。
構文 1
re = /pattern/[flags]
構文 2
re = new RegExp("pattern",["flags"])
引数
- re
必ず指定します。正規表現パターンを代入する変数名を指定します。 - pattern
必ず指定します。使用する正規表現パターンを指定します。構文 1 を使用する場合は、パターンを "/" という文字で区切ります。構文 2 を使用する場合は、パターンをダブル クォーテーション (") で囲みます。 - flags
省略可能です。フラグを指定します。構文 2 を使用する場合は、フラグをダブル クォーテーション (") で囲みます。指定可能なフラグは、次のとおりです。- g (引数 pattern に指定したパターンと一致する文字列をすべて検索するグローバル検索)
- i (大文字小文字を区別しない)
- m (複数行検索)
解説
Regular Expression オブジェクトを RegExp オブジェクトと混同しないようにしてください。名前は似ていますが、この 2 つのオブジェクトには明確な違いがあります。Regular Expression オブジェクトのプロパティには特定の Regular Expression のインスタンスによる一致に関する情報だけが格納されのに対し、グローバルな RegExp オブジェクトのプロパティロパティには一致が検出されるたびに更新される情報が格納されます。
Regular Expression オブジェクトには、文字を組み合わせた文字列検索 (正規表現による検索) を行う場合に使用するパターンを格納します。Regular Expression オブジェクトを作成した後に検索を実行するには、このオブジェクトを文字列のメソッドに渡すか、または文字列を Regular Expression オブジェクトのメソッドのどれかに渡します。最後に実行した検索に関する情報が、グローバルな RegExp オブジェクトに格納されます。
検索文字列があらかじめわかっている場合は、構文 1 を使用します。検索文字列を頻繁に変更する場合、および検索文字列をユーザー入力により受け取るため、コーディングの時点では検索文字列がわからない場合は、構文 2 を使用します。
引数 pattern に指定したパターンは、使用前に内部形式にコンパイルされます。構文 1 の場合は、スクリプトがロードされたときにパターンがコンパイルされます。構文 2 の場合は、使用する直前、または compile メソッドが呼び出されたときにコンパイルされます。
使用例
次のコードは、Regular Expression オブジェクトの使用例です。関連するフラグの付いた正規表現パターンを含むオブジェクトを作成します。この場合、Regular Expression オブジェクトの結果は match メソッドによって使用されます。
function MatchDemo(){
var r, re; // 変数を宣言します。
var s = "The rain in Spain falls mainly in the plain";
re = new RegExp("Spain","i"); // Regular Expression オブジェクトを作成します。
r = s.match(re); // 文字列 s で一致する文字列を検索します。
return(r); // 一致した文字列を結果として返します。
}
プロパティ
lastIndex プロパティ | source プロパティ
メソッド
compile メソッド | exec メソッド | test メソッド