JavaScriptの正規表現
正規表現とは文字列のパターンです。 「hogehoge」など文字列そのものだったり、「”h”で始まる」などパターンだったりします。 JavaScriptでは正規表現を使って文字列の検索や置換が可能です。
正規表現
正規表現は以下のいずれかで記述します。
正規表現リテラル
文字の前後にスラッシュ(/)を入れて正規表現を表します。 こちらを使うことの方が多いように思います。
書式
ar reg = /hoge/;
RegExpオブジェクトのコンストラクタ関数
RegExpオブジェクトで正規表現を表します。
書式
ar reg = new RegExp("hoge");
それではreplace関数を使って文字列の置換を行います。 replace関数は最初に一致した文字列を置換する関数です。
var moji = "hoge hoge";
var reg = /hoge/;
document.write(moji.replace(reg,"fumu"));
最初のhogeがfumuに置換されました。
実行結果
umu hoge
パターンマッチング
正規表現は文字列そのものだけでなく、パターンで指定することもできます。
記号 | 意味 | 例 |
---|---|---|
^ | 先頭文字が一致 | /^a/ |
$ | 末尾文字が一致 | /a$/ |
* | 直前文字が0回以上繰り返している | /ab*/ |
{n} | 直前文字がn回繰り返している | /a{3}/ |
[xyz] | 角括弧で囲まれた文字のいずれか1文字と一致 | /[ab]/ |
[^xyz] | 角括弧で囲まれた文字ではない文字と一致 | /[^ab]/ |
これらを組み合わせてパターンマッチングを行います。以下は正規表現リテラルの一例です。
^[0-9]$/ //数字のみで構成されている
/^[a-z]$/ //半角小文字のアルファベットだけで構成されている
/^[a-zA-Z]$/ //アルファベットだけで構成されている
/^a*$z/ //aで始まりzで終わる文字。aとzの間は0文字以上の単語が入っている
正規表現はStringのmatch、replace、search、splitメソッドなどで使用します。 上に書いたもの以外にも沢山あるので、必要に応じて使いましょう。