【正規表現】
・文字列の一部分を置換する
・文字列が制約を満たしているか調べる
・文字列の一部分を抽出する
◎JavaScriptにおける正規表現利用のメソッド
・replacs()メソッド
→任意の文字列を別の文字列に置き換える(置換)ことができるメソッド
・match()メソッド
→引数に指定した文字列がレシーバの文字列に含まれているか否かをチェックするためのメソッド
◎使い方
replaceメソッド(電話番号からハイフンを
取り除く)
var tel = '090-1234-5678';
undefined
tel.replace(/-/g, "");
"09012345678"
解説
【グローバルマッチ】
/ の後に g と書かれているところに注目!
文字列内で指定した文字が含まれている場合、その全てを置換えするするというオプションです。
gをつけない場合は、初めの一つだけ置換えられます。
match()メソッド(パスワードに英数字8文字以上という制約を設定)
> var pass = 'Hoge1234';
=> undefined
> pass.match(/[a-z\d]{8,}/i);
=> ["Hoge1234"]
解説
[a-z]: 角括弧で囲まれた文字のいずれか 1 個にマッチする
⇒-(ハイフン)を使用することで範囲を設定することができます
\d: 数字にマッチする
⇒、\dは角括弧の内部にあるので、[a-z\d]は「英数字のいずれか1つにマッチ」という意味です。
{n, m}: 直前の文字が少なくとも n 回、多くても m 回出現するものにマッチする
⇒{8, }は、直前の文字が少なくとも8回出現するもにマッチという意味です。
i: 大文字・小文字を区別しない検索
◎正規表現のパターン記述
[a-z] 角括弧で囲まれた文字のいずれか 1 個にマッチ
/d 数字にマッチ
{n, m} 直前の文字が少なくとも n 回、多くても m 回出現するものにマッチ
. どの一文字にもマッチ
+ 直前の文字の 1 回以上の繰り返しにマッチ
オプションフラグ
g グローバルマッチと呼び、文字列内で指定した文字が複数含まれている場合、その全てを置換
i 大文字・小文字を区別せずに検索
例:
"good friend".match(/good/)
⇒["good"]
'Cat'.match(/cat/);
=> null
'Cat'.match(/cat/);
=> null
*大文字小文字の区別なし
var mail = 'aaaa@gmail.com';
=> undefined
mail.match(/@.+/);
=> ["@gmail.com"]