フォームで大活躍する「正規表現」について!
 
                        こんにちは ko です。
今日は正規表現について
以前もリスペクトする大先輩が「正規表現」についての記事を書かれていました。
https://tech.pla-cole.co/%e6%ad%a3%e8%a6%8f%e8%a1%a8%e7%8f%be%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/
それでは踏襲していきたいと思います。
/    /のようにスラッシュで囲み、表現のパターンをつくることを正規表現と言います。
パターンを作ってtext()という関数で当てはまるかどうかをチェックしたりします。   
よく入力フォームなどに対して使われていますので、一例を軽く解説していきたいと思います。
(電話番号 正規表現 jsなどで検索するとすぐ出てきます)
ぜひコピペなどして使って見てください。
電話番号の正規表現
| 1 | /^[0-9]{3}-[0-9]{3}-[0-9]{4}$/ | 
^ (文字列の始まり)
[0-9] (0 から 9 までの文字)
{3} (3個続く)
- (ハイフン)
[0-9] (0 から 9 までの文字)
{3} (3個続く)
- (ハイフン)
[0-9] (0 から 9 までの文字)
{4} (3個続く)
$ (文字列の最後)  
郵便番号の正規表現
| 1 | /^\d{3}-?\d{4}$/ | 
^(文字列の始まり)
\d(数字)
{3}(3個続く)
-?(ハイフン あってもなくてもOK)
\d(数字)
{4}(3個続く)
$  
d = digit (数字、桁 という意味)
メールアドレスの正規表現
| 1 | /^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/ | 
^(文字列の始まり)
[A-Za-z0-9](AからZ aからz 0から9)←最初が特殊記号で始まらないように)
{1}(1個続く)
[A-Za-z0-9_.-](AからZ aからz 0から9 アンダーバー ピリオド ハイフン )
*(何個でも)
@(アットマーク)
{1}(1個続く)
[A-Za-z0-9_.-](AからZ aからz 0から9 アンダーバー ピリオド ハイフン )
{1,}(1文字以上)
\.(ピリオド)
[A-Za-z0-9](AからZ aからz 0から9)
{1,}(1文字以上)
$  
逆スラッシュ!
文中に出てくる逆スラッシュ\
これはそのあとに続く文字を正規表現としてではなく、普通の記号として読むという意味です。
正規表現では.をピリオドやドットとしてではなく「任意の1文字」と解釈します。
これをドットとして解釈させる場合は\.と記述する必要があります。  
| 1 2 | 例)    .1.1        =  0101も3131も当てはまる            \.1\.1     = .1.1 | 
これをエスケープと呼ぶようです。
正規表現を使ったバリテーション
入力フォームのvalueを受け取って正規表現をテストします。
| 1 2 3 4 5 6 7 8 9 10 11 12 | function check(){     //inputから取ってくる     var address = document.getElementById('email').value;     //正規表現を変数に     var mohan = /^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/;     //text()でチェックかける       if (mohan.test(address)) {       alert("OK");     } else {       alert("間違ったメアドです");     }       }   | 
  See the Pen 
  blog - 正規表現  by たまき こう (@ulqvhvox)
  on CodePen.
僕もまだ勉強始めたばかりですが、jsって本当になんでもできるなと思っています。これからもどんどんjs学んでいきたいと思います!
