内容へ移動
とあるエンジニアの闇歴史帳
コピペで使える便利Wiki ※現在構築中です。
ユーザ用ツール
ログイン
トレース:
perl:expr_isemailaddress
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== メールアドレスの書式かチェックする - Perl ====== ~~socialite~~ <note important>この記事は2006年10月21日に書かれたものです。</note> メールアドレスがきちんと入力されているかチェックを行いたい。半角英数字と一部の記号を用い、「ユーザー名@ドメイン名」といった形になっているか確認する。 ===== サンプル ===== <code perl> ;# ;#入力チェック ;# if( isMailAddress('m.ka-tsu-be@ichikoro.com') ){ print "メールアドレスです。\n"; } else{ print "メールアドレスではありません。\n"; } #--------------------------------------- #メールアドレスかチェックする #--------------------------------------- sub isMailAddress{ my $str = shift || return(undef); #-- メールアドレスか --# if( $str =~ /^([a-zA-Z0-9\.\-\/_]{1,})@([a-zA-Z0-9\.\-\/_]{1,})\.([a-zA-Z0-9\.\-\/_]{1,})$/ ){ return(1); } #-- メールアドレスではないか --# else{ return(0); } } </code> ここでは非常に簡便な方法を使用している。 もしも、もっと厳格にチェックしたいのなら、「''([a-zA-Z0-9\.\-\/_]{1,})@([a-zA-Z0-9\.\-\/_]{1,})\.([a-zA-Z0-9\.\-\/_]{1,})''」の部分を[[http://www.din.or.jp/~ohzaki/perl.htm|Perlメモ]]の大崎氏が書かれている次のような正規表現に置き換えれば良い。 > $mail_regex = q{(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\} . q{\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff][} . q{^\\\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x} . q{80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-} . q{\xff\n\015"]*(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(} . q{\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\0} . q{00-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*} . q{\])(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,} . q{;:".\\\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[} . q{^\x80-\xff])*\]))*}; このチェックもあくまで書式のチェックであり、実在するメールアドレスかどうかのチェックではない。また正常に届くかどうかのチェックを行っているわけではないので注意されたい。 ===== 関連書籍 ===== {{amazon>jp:4774172707}} <html><p style="clear:both"></p></html> {{amazon>jp:4774177407}} <html><p style="clear:both"></p></html> {{amazon>jp:4873113008}} <html><p style="clear:both"></p></html> {{tag>CGI・Perl例文集 Perl 正規表現 メールアドレス validation}} ~~socialite~~
関連ページ
perl/expr_isemailaddress.txt
· 最終更新: 2020/06/23 14:10 (外部編集)
ページ用ツール
文書の表示
バックリンク
文書の先頭へ