regular expression | NN 4 IE 4 ECMA 3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
regular expression オブジェクトは RegExp オブジェクトのインスタンスです。正規表現オブジェクトはそれぞれ、文字列のパターンマッチングを行うために使用されるパターンから構成されています。正規表現のパターンは簡単な文字列であることも、基本的にそれだけで独立して言語である表記を使用した高度な表現であることもあります。JavaScript 1.2 での正規表現の実装は、Perl での実装方法に非常に類似しています。この概念については、JavaScript 1.2 以降の関連文書を参照してください。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
正規表現オブジェクトを作成するには、パターンをスラッシュで囲み、変数に表現全体を代入します。たとえば、次のステートメントは簡単な語のパターンを持つ正規表現を作成します。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
var re = /greet/; |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
次に re 変数を、文字列内でパターンを探すさまざまなメソッド内でパラメータとして使用します。また変数に代入する代わりに、表現を直接メソッドパラメータとして使用することもできます。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
また正規表現の表記は、語の左右の単語区切りや、数値、または文字などのような、複雑な概念として機能する多数のメタ文字から構成されます。たとえば、前述の文字パターンをパターンが語である場合に限り (また greetins などのような他の語の一部ではない) 探す場合には、メタ文字を使用してパターンの両側に単語の区切りがあることを示します。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
var re = /\bgreet\b/; |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
次の表に、JavaScript 1.2 で使用されている正規表現の表記を要約しました。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
正規表現を作成する場合、オプションとしてグローバルで機能するように、またマッチで大文字と小文字を無視するように表現を設定することができます。メソッドで正規表現が検索と置換を行い、目標はすべて置換した結果である場合には、通常このようにします。これらのスイッチをオンにする補助キーは、文字 g と i です。これらの補助キーは単独で、または gi のように一緒に使用することもできます。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
正規表現でパターンを作成すると、正規表現オブジェクトメソッドおよび正規表現パラメータを受け付ける String オブジェクトメソッドでアクションが実行されます。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
正規表現オブジェクトの作成 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
var regExpressionObj = /pattern/ [g | i | gi]; var regExpressionObj = new RegExp(["pattern", ["g" | "i" | "gi"]]); |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
プロパティ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
メソッド | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
constructor | NN 4 IE 4 ECMA 3 |
読み書き | |
Array オブジェクトのプロパティを参照してください。 |
|
global、ignoreCase | NN 4 IE 5 (Mac)/5.5 (Win) ECMA 3 |
読み取り専用 | |
正規表現オブジェクトのインスタンスの作成時に g または i の補助キーが設定されていた場合にブール値 true を返します。正規表現オブジェクトに両方の補助キーが設定されている場合には (gi)、プロパティをそれぞれ個別にテストする必要があります。 |
|
例 | |
if (myRE.global && myRE.ignoreCase) { ... } |
|
値 | |
true か false のブール値 |
|
lastIndex | NN 4 IE 4 ECMA 3 |
読み書き | |
次のパターンマッチングを開始する、文字列内の文字のゼロから始まるインデックス値です。新しい検索では、値はゼロです。別の場所から開始したり、特定の文字をスキップする場合には、手動で設定することもできます。 |
|
例 | |
myRE.lastIndex = 30; |
|
値 | |
整数値 |
|
source | NN 4 IE 4 ECMA 3 |
読み取り専用 | |
正規表現を作成するために使用される文字の文字列を返します。値には表現を囲むスラッシュ区切りは含まれません。 |
|
例 | |
var myREasString = myRE.source; |
|
値 | |
文字列 |
|
compile() | NN 4 IE 4 ECMA なし |
compile("pattern"[, "g" | "i" | "gi"]) | |
正規表現パターンを本来の正規表現オブジェクトにコンパイルします。このメソッドは主に、スクリプトの実行中にパターンが変更する可能性のある正規表現を再コンパイルするために使用されます。 |
|
戻り値 | |
正規表現のインスタンスへの参照 |
|
パラメータ | |
|
|
exec() | NN 4 IE 4 ECMA 3 |
exec(string) | |
パラメータとして渡された文字列内で現在の正規表現パターンを検索します。この形式には一般的なシーケンスが続きます。 |
|
var myRE = /somePattern/; var resultArray = myRE.exec("someString"); |
|
静的 RegExp と正規表現のインスタンス (例内では myRE) オブジェクトの両方のプロパティは、検索の結果に関する情報で更新されます。また exec() メソッドは、RegExp オブジェクトプロパティに類似したデータの配列を返します。返される配列には次のプロパティが含まれます。 |
|
|
|
exec() メソッドの結果は変数に入れられますが、RegExp プロパティ値は次の正規表現演算で変化します。正規表現がグローバル検索に設定されている場合には、その後の myRE.exec("someString") のコールは、最後のマッチ位置から検索が続行します。 |
|
特定の exec() コールでマッチが見つからない場合には、null が返されます。 |
|
戻り値 | |
マッチがある場合にはマッチの配列、ない場合には null |
|
パラメータ | |
|
|
test() | NN 4 IE 4 ECMA 3 |
test(string) | |
パラメータとして渡された文字列内に正規表現のマッチがある場合にはブール値の true、ない場合には false を返します。検索結果に関し、これ以外の情報はありません。これは文字列内に一致するパターンが存在するかどうかを確認する最も速い方法です。 |
|
戻り値 | |
true か false のブール値 |
|
パラメータ | |
|
|