トップ > Tech > JavaScript > 正規表現

正規表現

簡単なやつ

簡単なほうでは正規表現パターンを動的に変更できないので、変更する必要がある場合は、後述の 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 クラス

基本的には簡単なほうと同じ。RegExp のコンストラクタの第 1 引数にパターン、第 2 引数にオプションを指定するだけ。

var regexp = new RegExp("DEF", "i");
var match = moji.match(regexp);
(2010/03/25 17:26:29)
4508
プロフィール

Kenz Yamada(山田研二)。1984年生。大阪。ちょっとずつ好きなプログラム作ってます。 好きなものはカメラと旅行。ガジェットや身の回り、ちょっとこだわります。 詳しくは Web mixi で。

Bookmark and Share