はじめに
正規表現でよく使うメタ文字で紹介したメタ文字を使い、簡単な正規表現を書いてみました。
郵便番号
・「数字」を3回繰り返した後「-」を挟んで「数字」を4回繰り返す。
・「数字」を4回繰り返した後「$」が入っているため、「-」含めて合計8桁である。
[0-9]{3}-[0-9]{4}$
入力値 | 結果 | 備考 |
---|---|---|
000-1111 | ○ | |
0001111 | × | 「-」が入っていないため |
00-1111 | × | 「-」前の数字が3つで無いため |
987-6543 | ○ | |
111--2222 | × | 「-」が1つで無いため |
メールアドレス
RFC規定のメールアドレスを作ろうとしますと、すごく長く複雑(下記リンク参照)になってしますので、キャリアメールなどで、設定出来る簡単なメールアドレスの正規表現を紹介させて頂きます。
・@前までに半角英数字記号(.-_)を使用できます。
・@前に「.」を使うことは出来ません。
・@後最初の「.」まで半角英数値のみ使用できます。
・連続ドット入力可能
[0-9a-zA-Z.\-_]*(?!\.).@([0-9a-zA-Z])+.[0-9a-zA-Z.\-]+$
入力値 | 結果 | 備考 |
---|---|---|
aa@aa.test | ○ | |
Test..a@aa.test.test | ○ | |
test.@aa.test | × | 「@」の前「.」が入っているため |
.001@aa.com | ○ | |
aa.test | × | 「@」が入っていないため |
aa@aa | × | 「@」の後に「.」が入っていないため |
下記のサイトに99%のEmail Addressに対応できる正規表現が書いてあります。
興味のある方は見てみてください。(別サイトに飛びます)
http://emailregex.com/
日付
・「1356789」、月の場合「1-31」まで入力可能
・「469」月の場合「1-30」まで入力可能
・11月の場合「1-30」まで入力可能
・12月の場合「1-31」まで入力可能
・2月の場合「1-29」まで入力可能
(^[1356789]([1-9]|[12][0-9]|[3][0-1]))$|(^[469]([1-9][12][0-9]|30))$|(^11([1-9]|[12][0-9]|30))$|(^12([1-9]|[12][0-9]|[3][0-1]))$|^2([1-9]|[12][0-9])$
入力値 | 結果 | 備考 |
---|---|---|
11 | ○ | |
131 | ○ | |
1311 | × | 13月は存在しないため |
1111 | ○ | |
40 | ○ | 40月または、4月0日は存在しないため |
631 | × | 6月31日は存在しないため |
229 | ○ | |
230 | × | 2月30日は存在しないため |
MMdd方式(月と日付を2桁に揃える)にしたい場合は1桁の数字の前に「0」をつけることで、出来ます。
(0[1356789](0[1-9]|[12][0-9]|[3][0-1]))$)
まとめ
この他にも、正規表現を使って電話番号や、半角チェック、大文字小文字チェック、既定の入力文字チェックなどいろいろな事が出来ます。
また、メタ文字は紹介したもの以外にも便利な物がたくさんあります。(「\d」で半角数字を全て許容でき、「\D」と書くことで半角数字以外を全て許容出来るなど。)
ぜひ興味がある方は調べてみてください。