簡単なほうでは正規表現パターンを動的に変更できないので、変更する必要がある場合は、後述の RegExp クラスを用いる。
文字列オブジェクトの match メソッドを使う。引数には /.../ で囲ったパターンを記述する。
// h を検索
var moji = "abc456ghi";
if (moji.match(/h/) != null)
{
// マッチしたとき
}
マッチするとマッチした文字列、しなければ null を返すので、null と比較してやればよい。
同じく replace メソッドを使う。
// 数字 を x に置き換える
var moji = "abc456ghi";
var moji2 = moji.replace(/\d/, "x");
また、Perl と同じように (...) でくくるとマッチした文字列を $1, $2, ... で取得できる。
// 数字の後ろに m をつける
var moji = "1,2,3";
var moji2 = moji.replace(/(\d)/, "$1m");
パターンの / の後ろにつけるやつで Perl とかと同じ。
g | (global) グローバル検索 |
---|---|
i | (ignore case) 大文字小文字を無視 |
m | (multiline) 複数行検索 |
var moji = "ahbhc456ghi";
// i をつけると大文字小文字を無視する
// g をつけるとマッチしたやつが全部取得できる
var match = moji.match(/h/gi);
// 結果は配列に入ってくる
// match[0], match[1], ...(長さは match.length)
// g をつけると全部置き換わる
var moji2 = moji.replace(/h/g, "xxx");
基本的には簡単なほうと同じ。RegExp のコンストラクタの第 1 引数にパターン、第 2 引数にオプションを指定するだけ。
var regexp = new RegExp("DEF", "i");
var match = moji.match(regexp);
Kenz Yamada(山田研二)。1984年生。大阪。ちょっとずつ好きなプログラム作ってます。
好きなものはカメラと旅行。ガジェットや身の回り、ちょっとこだわります。
詳しくは Web mixi で。