正規表現
文字列に含まれている文字やパターンなどを判定するのが正規表現です。例えば,
\d
// または
0-9
というように書くことで1文字の数字を判定できます。つまり\dは0~9のうちのいずれかということになります。
またアルファベットと数字,
\w
// または
a-zA-Z0-9_
となります。
パターンも判定できるので,
^[^@ \t\n\r]+@[\w\-\.]+\.[\w\-\.]+$
というような正規表現で行います
- ※2)
- 紹介しているメールアドレスチェックは最低限の形式チェックであり,
RFC2822の仕様には準拠していません。詳しくは後述 (※3)
正規表現によるマッチング
正規表現を用いたパターンマッチングを行うには,
strings.match(/正規表現/)
連載中で使用するマッチングの表現
まずは連載で使用するマッチングの表現を挙げておきます。これらはメタ文字,
メタ文字
正規表現で使われる独特の意味を持つ文字。
メタ文字
メタ文字 | 説明 |
---|---|
[012] | 0,1,2のいずれか |
[^012] | 0,1,2のいずれでもない |
^012 | 012で始まる |
012$ | 012で終わる |
a? | 0または1文字のa |
a* | 0文字以上のa |
a+ | 1文字以上のa |
. | 任意の1文字 |
定義済み文字クラス
それ単体で数字やアルファベットをまとめて表すことができる文字・
定義済み文字クラス
定義済み文字クラス | 説明 |
---|---|
\dまたは 0-9 | 0-9の半角数字 |
a-zA-Z | 半角英数字 |
\r\n | 改行 ラウザによってまちまちなので両方を指定 |
\t | タブ |
エスケープ
上記のメタ文字で定義されている文字列を文字として扱いたい場合や定義済み文字クラスを使う場合は,
簡単に言うと,
\*
\d
// など
エスケープ文字はフォントによって,
WindowsではBackSpace左の円マークキー,
使用例:簡易メールアドレスチェック
メールアドレスとして明らかに間違っているものをチェックします。
メールアドレスの形式は通常
aaaa@aaaa.com
のようになっています。今回は簡易チェック
^[^@ \t\n\r]+@[\w\-]+\.[\w\-\.]+$
この正規表現を文章にすると
「@半角スペース全角スペースタブ改行を含まない文字列1文字以上,
ということになります。まだ少しわかりにくいかもしれません。
ひとつひとつ分けてみましょう。上記のパターンは10の文字列・
簡易Emailアドレスチェックの正規表現を分解
パターン | 説明 |
---|---|
^ | ~で始まる |
[^@ \t\n\r] | @, 半角スペース, 全角スペース, タブ, 改行 文字以外 |
[^@ \t\n\r]+ | 直前の文字 |
@ | @1文字 |
[\w\-] | 半角数字, 半角アルファベット, アンダースコア, ハイフンのいずれか |
[\w\-]+ | 直前の文字 |
\. | 半角ドット1文字 |
[\w\-\.]+$ | 半角数字, 半角アルファベット, 半角アンダースコア, 半角ハイフン, 半角ドットのいずれか |
[\w\-\.]+$ | 直前の文字 |
(最初から) |
~で終わる |