カスタムValidation(メアドが入力された場合のみ書式チェック)

2007/03/21 | cakePHP

cakePHPに限ったネタではないのだが、メアドの書式チェックについてメモ。
とあるクライアントから入力フォームのメアドは任意入力の項目としてほしい、という依頼があった。単にvalidationをはずしてもいいのだが、後々活用できそうなので、試行錯誤してみた。

cakePHPでは”VALID_EMAIL”と指定することでメールアドレスの書式チェックをしてくれるが、未入力でもエラーになってしまう。よってこれを「未入力はOKで、かつ入力された場合のみ書式チェック」というふうに書き換える。

/(¥¥A(?:^([a-z0-9][a-z0-9_¥¥-¥¥.¥¥+]*)@([a-z0-9][a-z0-9¥¥.¥¥-]{0,63}¥¥.(com|org|net|biz|info|name|net|pro|aero|coop|museum|[a-z]{2,4}))$)¥¥z)/i

デフォルトはこのような正規表現になっている。正規表現は苦手なのだが、なんとなく雰囲気で以下のように書き換えた。

/(¥¥A(?:^([a-z0-9][a-z0-9_¥¥-¥¥.¥¥+]*)@([a-z0-9][a-z0-9¥¥.¥¥-]{0,63}¥¥.(com|org|net|biz|info|name|net|pro|aero|coop|museum|[a-z]{2,4}))$)¥¥z)|(¥¥A¥¥z)/i

うしろに”|(¥¥A¥¥z)”をつけただけ。なんとも安直だが、とりあえずこれで動いているのでよしとする。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net