RegExpオブジェクト [reference]

正規表現オブジェクト

正規表現は、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」として用いる。
replace() では「$1」「$2」を使用する。

入れ替える

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(  )
引数なし  
戻り値   正規表現を表すテキスト。

タイトルとURLをコピーしました