読者です 読者をやめる 読者になる 読者になる

[PHP][日記] PHPerだけど正規表現まわりの問題がもりあがっているようで一言

追記しました

サーバー側書くときには特別な理由がない限りPHP使う、PHPerだけど
404 Blog Not Found - 「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ
に対して一言。


まぁ内容が正規表現ゆえゆえというより、「PHP使いはもうメアドの正規表現をblogに書くな」という内容なってしまっているのでその流れで。


メアドの正規表現はそこまで厳密にやる意味ない

厳密にやると「一部の携帯のメアドが通らない」ってのがあるけど、それの対応した時点で何をもって厳密なメアドの正規表現とするのかは不明になっていまう。


携帯のメアドに対応したとして、日本の携帯以外にもRFC2822に準拠していないメアドは存在する可能性があるので、上記を対応しただけでは微妙(携帯だけ対応しただけでは厳密でもなければ、完全でもない中途半端)なものになってしまう。
※自分の予想を超えたメアドが存在する可能性は0ではない


そのメアドを選んだ人の問題だといわれればそれまでだが、携帯のメアドも選んだ人の問題だと言ってしまえばそれまでで、どのラインで切るかは人それぞれの感覚にゆだねることとなってしまう。

メアドを正規表現チェックする意味

メアドを正規表現でどんなに厳密にチェックを行ったところで、そのメアドが存在するかもわからない。


厳密な意味でのValidなチェックはメール認証など他の処理によって担保されるので、
メアドを正規表現でチェックする理由は単純なヒューマンエラーのチェックを行うことで入力ミスをへらすといったそういう程度の理由でしかない。


言語でくくって考えるのは違うのでは

どんな言語でも、凄い人もいるし、覚えたての人もいるわけで単純に○○erは〜ってくくることは違うのではと思います。
※日本人は〜、韓国人は〜、白人は〜、黒人は〜と言っていることとなんら変わりはない。






こういうこと言ってると「これだからPHPerは〜」とか言われるのだろうか




追記1
るとさんからコメントで指摘をいただきましたので、追記します。

このエントリーで言いたかったことは、メールに関して「極端に厳密なチェック」は必要ないということです。
もとの記事(PHP)で紹介されている正規表現のように+を含むメアド等を存在するのにはじいてしまうのは問題だと思います。

厳密にやりすぎて、存在しうるメアドをはじいてしまう可能性があるのであれば、存在しうるメアドを全て通す程度の簡易チェックのほうが望ましいと個人的には思っているので、RFCに準拠したチェックに日本の携帯は例外として通すといった処理はナンセンスだと思ったのでこのエントリーを書きました。
※日本の携帯以外にも例外が存在する可能性は0ではないので例外を通すのであれば、許容範囲をより広げるほうが良い


また、システムによってはRFC準拠のもののみ許容といったチェックもありえると思います