RegExpNN 4 IE 4 ECMA 3

RegExp オブジェクトは、正規表現のインスタンスを生成し、現在のウィンドウまたはフレームですべての正規表現を監視する静的オブジェクトです。RegExp オブジェクトのインスタンスについては、この後の正規表現の項で説明されています。

 

正規表現は、特定の文字パターンまたは特徴と一致するテキストを探すために使用されます。たとえば正規表現を使用して、テキストフィールド内に入力されたエントリが 5 桁の数値であるかどうかを素早く調べることができます。一致するパターンを定義するためには表記構文の知識が必要ですが、これは本書では取り扱いません (O'Reilly 社発行の Jeffrey E. F. Friedl 著『Mastering Regular Expressions』を参照してください)。構文の概要については、正規表現オブジェクトの説明を参照してください。

 

RegExp オブジェクトのプロパティは、ドキュメント内での最後の正規表現の操作に関する情報を保存します。よって、正規表現操作が行われるたびに各プロパティが変化することも考えられます。正規表現操作には、正規表現オブジェクトインスタンスのメソッド (exec()test()) だけでなく、パラメータとして正規表現を受け取る String オブジェクトメソッド (match()replace()split()) も含まれます。これらのプロパティのいくつかは、正規表現の次の操作の準備として正規表現にも渡されます。

 

すべてのプロパティには、長い名前の他に $ で始まるショートカットもあります。

 
プロパティ
 
indexinputlastIndexlastMatchlastParenleftContext
multilineprototyperightContext$1$2$3
$4$5$6$7$8$9
indexNN なし IE 4 ECMA なし

読み取り専用

最後のパターンマッチングが開始した、文字列内の文字のゼロから始まるインデックス値です。lastIndex プロパティが終了位置を示します。

 
 
var srchStart = RegExp.index;
 

整数値

inputNN 4 IE 4 ECMA なし

読み書き

正規表現を比較される対象となるメインの文字列です。メインの文字列がメソッドへのパラメータとして正規表現操作に渡された場合には、この値は null になります。短いバージョンは $_ (ドル記号、アンダースコア) です。

 
 
RegExp.input = "Four score and seven years ago...";
 

文字列

lastIndexNN なし IE 4 ECMA なし

読み書き

次のパターンマッチングを開始する、文字列内の文字のゼロから始まるインデックス値です。新しい検索では、値はゼロです。別の場所から開始したり、特定の文字をスキップする場合には、手動で設定することもできます。Navigator では、このプロパティは正規表現オブジェクトのインスタンスに反映され、そこでサポートされます。

 
 
myRE.lastIndex = 30;
 

整数値

lastMatchNN 4 IE 5 (Mac)/5.5 (Win) ECMA なし

読み取り専用

最近の操作の結果として、正規表現に一致する文字列を返します。短い名前は $& です。

 
 
var matched = RegExp.lastMatch;
 

文字列

lastParenNN 4 IE 5 (Mac)/5.5 (Win) ECMA なし

読み取り専用

最近の操作の結果として、正規表現の最後のかっこ付きのサブコンポーネントに一致する文字列を返します。短い名前は $+ です。

 
 
var myValue = RegExp.lastParen;
 

文字列

leftContext、rightContextNN 4 IE 5 (Mac)/5.5 (Win) ECMA なし

読み取り専用

leftContext プロパティは、最近検索されたテキストの始めから、一致する文字列までの (ただし一致する文字列は含まれない) 文字列を返します。rightContext プロパティは、一致する文字列の直後にある部分から、文字列の最後までの文字列を返します。短い名前は順に $`$' です。同じメインの文字列において続いて行われる次の検索は常にメインの文字列の後方に向かって移動するため、leftContext 値の開始位置は操作の度に移動することがあります。

 
 
var wholeContext = RegExp.leftContext + RegExp.lastMatch + RegExp.rightContext;
 

文字列

multilineNN 4 IE 5 (Mac)/5.5 (Win) ECMA 3

読み書き

複数行のテキストで検索が行われる場合には、multiline プロパティは true に設定されます。たとえば textarea 要素内のテキストを検索する場合は複数行検索です。短い名前は $* です。

 
 
if (RegExp.multiline) {
    ...
}
 

ブール値

prototypeNN 4 IE 4 ECMA 3

読み書き

Array オブジェクトのプロパティを参照してください。

$1、...、$9NN 4 IE 4 ECMA なし

読み取り専用

正規表現の戻り値のかっこ付きのサブコンポーネントは結果を返します。これらの結果は、$ 記号が最初に付いた、1 から 9 までのラベルのプロパティに個別に保存されます。順番は、サブコンポーネントの左かっこの位置に基づきます。一番左にあるサブコンポーネントの結果は $1 に配置されます。これらのプロパティは、正規表現を使用する String メソッドへのパラメータ内で直接使用することもできます (String.replace() メソッド参照)。

 
 
RegExp.$2
 

文字列