- RegExp(patern[, flag]) (e4/N4)
- 正規表現オブジェクトを生成する。 正規表現オブジェクトは、文字列のパターンマッチングを行う際に用いられる。 次の例は、文字列 str が "DEF" という文字列を含んでいるかどうかを検査する。
str = "ABCDEFG"; re = new RegExp("DEF", "i"); if (str.search(re) != -1) { document.write("Match!!"); }通常は次のように簡単に記述する。str = "ABCDEF"; if (str.search(/DEF/i) != -1) { document.write("Match!!"); }正規表現では、次のようなマッチングが行われる。A Aという文字 ABC ABCという文字列 [ABC] A,B.Cのいずれか1文字 [A-C] A〜Cまでのいずれか1文字 [^ABC] A,B,Cのいずれでもない任意の1文字 . 任意の1文字 A+ 1文字以上のA A* 0文字以上のA A? 0文字または1文字のA ^ABC ABCで始まる文字列 ABC$ ABCで終わる文字列 ABC|DEF|GHI ABCまたはDEFまたはGHI \+や\* +や* A{2} 2個のA(AA) A{2,} 2個以上のA(AA, AAA, AAAA, ...) A{2,3} 2個〜3個のA(AA, AAA) [\b] バックスペース \b スペースなどの単語の区切り \B \b以外の文字 \cA Ctrl-A \d 任意の数値([0-9]と同じ) \D 数値以外の文字([^0-9]と同じ) \f フォームフィード文字 \n 改行文字 \r 復帰文字 \s 1文字の区切り文字([ \f\n\r\t\v]) \S \s以外の1文字 \t タブ文字 \v 垂直タブ文字 \w 英数文字([A-Za-z0-9_]と同じ) \W \w以外の文字 \2 2番目の(...)にマッチした文字列 \o033 8進数で033の文字 \x1b 16進数で1bの文字/.../i と指定すると大文字小文字を区別しなくなる。
document.write("AbCdEfG".match(/abc/i)); // abc/.../g と指定すると最初にマッチした部分に加え、2番目、3番目...にマッチした部分も配列として返す。xx = "12:34:56".match(/\d+/g); document.write(xx.length + "<BR>); // → 3 document.write(xx[0] + "<BR>); // → "12" document.write(xx[1] + "<BR>); // → "34" document.write(xx[2] + "<BR>); // → "56"(...)を指定すると、後でその(...)に対応する部分を取り出すことができる。xx = "12:34:56".match(/(\d+):(\d+):(\d+)/); document.write(RegExp.$1 + "<BR>") // → 12 document.write(RegExp.$2 + "<BR>") // → 34 document.write(RegExp.$3 + "<BR>") // → 56$1, $2, ..., $9は str.replace()の第2引数でも使用することができる。str = "12:34"; str.replace(/(\d+):(\d+)/, "$1時$2分"); document.write(str);
- regexp (e4/N4)
- re = new RegExp("[a-z]+"); によって生成される正規表現オブジェクト。 単に re = /[a-z]+/; としてもよい。
- regexp.ignoreCase (e4/N4)
- iフラグ(/.../i)が指定されていればtrue。
- regexp.global (e4/N4)
- gフラグ(/.../g)が指定されていればtrue。
- regexp.source (e3/N4)
- 正規表現部分。/.../の...部分。
- regexp.lastIndex (e4/N4)
- 次のマッチングを開始すべきインデックス。
re = /\d+/g; for (i = 0; i < 3; i++) { xx = re("12:34:56"); document.write(re.lastIndex + ":"); documenr.write(xx + "<BR>"); }
- RegExp.lastMatch (e4/N4)
- 最後にマッチした文字列。
- RegExp.leftContext (e4/N4)
- マッチした部分より左側の文字列。
- RegExp.rightContext (e4/N4)
- マッチした部分より右側の文字列。
- RegExp.lastParen (e4/N4)
- 最後の(...)に対応する文字列。
- RegExp.$n (e4/N4)
- 直前の正規表現マッチングにおける、n番目の(...)に対応する文字列。
"12:34:56".match(/(\d+):(\d+):(\d+)/); document.write(RegExp.$1 + "<BR>"); document.write(RegExp.$2 + "<BR>"); document.write(RegExp.$3 + "<BR>");
- regexp.compile(patern[, flag]) (e4/N4)
- 高速化のために正規表現を内部表現形式にコンパイルする。 ループの中でマッチングを行う際に有力。
re = new RegExp(""); re.compile("[0-9]+"); document.write("12:34:56".match(re));
- regexp.exec(str) (e4/N4)
- str.match(regexp)と同様。
- regexp.test(str) (e4/N4)
- strにregexpがマッチしたかどうかをtrue|falseで返す。
- regexp(str) (e4/N4)
- regexp.test(regexp)と同様。
- regans (e4/N4)
- マッチングの結果。
- regans.length (e4/N4)
- 配列の要素の個数。
- regans[n] (e4/N4)
- 配列の各要素。
- regans.index (e4/N4)
- 文字列中のマッチングのインデックス。
- regans.input (e4/N4)
- マッチングの対象となった文字列。