正規表現オブジェクト
正規表現は、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( ) | ||
引数なし | ー | |
---|---|---|
戻り値 | 正規表現を表すテキスト。 |