正規表現オブジェクト
正規表現は、RegExpオブジェクトを作成して使用する。
RegExpオブジェクトのメソッドの他、Stringオブジェクト の match()、matchAll()、replace()、replaceAll()、search()、split() でも使用する。
作成
正規表現オブジェクト作成
var regexpObj = new RegExp("Shoebill","gi");
| 構文説明 new RegExp( pattern, option ) | ||
| 別の書き方 /pattern/option | ||
| 引数1 | pattern | 正規表現テキスト。変数使用可能。特殊文字を使用するときは前に \ (バックスラッシュ)をつける。 |
|---|---|---|
| 引数2 | option 省略可 |
検索オプション。以下の3つのフラグを設定できる。順序問わず。 “g”……グローバルマッチ。複数マッチ。最初の一回だけでなく該当箇所をすべて検索する。 “i”……大文字・小文字を区別しない “m”……複数行検索。改行コードを認識して複数行として扱う。行頭(^)や行末($)のマッチングが各行で行える。 その他の検索オプションu、y、s、dは使えない(ES3の壁) |
| 戻り値 | 作成された正規表現オブジェクト | |
特殊変数
| RegExp.$1 RegExp.$2 RegExp.$3 RegExp.$4 RegExp.$5 RegExp.$6 RegExp.$7 RegExp.$8 RegExp.$9 |
正規表現内の()に一致した部分。$1は一つ目にマッチした部分、$9は9つ目にマッチした部分。 正規表現オブジェクトのプロパティではなく、「RegExp.$1」として用いる。 |
入れ替える
var toris = /(\w+)\s(\w+)/;
var str = 'ウズラ ぴよぴよ';
str.replace(toris, '$2, $1');
プロパティ・メソッド一覧
| 値の範囲 | ||
|---|---|---|
| .global | 検索オプションにg(複数マッチ)が指定されているか読取専用 | true/false |
| .ignoreCase | 検索オプションにi(大文字小文字を区別しない)が指定されているか読取専用 | true/false |
| .lastIndex | 一致した部分に続く次の文字の開始位置。0から数える。gオプション時のみ有効。 | 0〜 |
| .multiline | 検索オプションにm(改行コードを認識して複数行として扱う)が指定されているか読取専用 | true/false |
| .source | 指定されている正規表現文字列。RegExp() の第一引数や /…/ で指定したパターン文字列。読取専用 | 文字列 |
| 戻り値 | ||
|---|---|---|
| .compile() | 正規表現文字列を設定。 | true成功 false失敗 |
| .exec() | 文字列strが正規表現と一致するか検索を実行する。一致した部分を文字列(gオプションがあるときは配列)で返す。文字列?配列? | 文字列配列 null 一致しないとき |
| .test() | 文字列strが正規表現と一致するかどう | true一致 false一致しない |
| .toString() | RegExpオブジェクトを文字列に変換 | 正規表現テキスト |
メソッド詳細
compile
正規表現を再設定する。引数はnew RegExp()に同じ。
regexpObj.compile("uzula", "g");
| 構文説明 compile(pattern, option) | ||
| 引数1 | pattern | 正規表現テキスト。変数使用可能。特殊文字を使用するときは前に \ (バックスラッシュ)をつける。 |
|---|---|---|
| 引数2 | option省略可 | 検索オプション。省略可。 “g”……グローバルマッチ。複数マッチ。指定がなければ最初の一回のみで処理終了。 “i”……大文字・小文字を区別しない “m”……複数行検索。改行コードを認識して複数行として扱う。 検索オプションu、y、s、dは使えない(ES3の壁) |
| 戻り値 | 成功したらtrue、失敗したらfalse | |
exec
比較を行い、一致した文字列を配列で返す。
regexpObj.exec(str);
| 構文説明 exec(str) | ||
| 引数1 | str | 正規表現にマッチさせる文字列。 |
|---|---|---|
| 戻り値 | 一致した文字列の配列、一致しなければnull | |
test
比較を行い、一致したかどうかをtrue/falseで返す
regexpObj.test(str);
| 構文説明 test(str) | ||
| 引数1 | str | 正規表現にマッチさせる文字列 |
|---|---|---|
| 戻り値 | 一致すればtrue、一致しなければfalse | |
toString
正規表現を表す文字列を返す
var pattern = regexpObj.toString();
| 構文説明 toString( ) | ||
| 引数なし | ー | |
|---|---|---|
| 戻り値 | 正規表現を表すテキスト。 | |