Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

メールアドレスの正規表現的な何か

yuripop 苦労してこれJavaのコードにしたけど、、、hoge@localhostは通してまうんやね、、、 http://blog.livedoor.jp/dan... link
yuripop DoCoMoとかの先頭「.」みたいなのは通してあげたいけど、完全携帯専用にするとiPhone&Gmailのユーザとかユーザ名に「+」の入ったアドレスを利用してるとするとだめだし、、、 link
yuripop /^[a-z0-9\._-]{3,30}@(?:[a-z0-9][-a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,4}|museum|travel)$/i これだと「+」入りがだめ… link
yuripop どこに何を書いたら+入れてもいいようになるんか解読できへん… link
yuripop Perl使いの人たすけてください…>< link
monjudoh @yuripop 最初の方の[a-z0-9\._-]の中に+を入れればいいのはにいか link
yamashiro @yuripop ミスった。/^[a-z0-9\._-+]{3,30}@(?:[a-z0-9][-a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,4}|museum|travel)$/ link
yamashiro 携帯電話のメールアドレスのみ許可したいって、ドメインのほうだけ頑張ればいいんじゃ???既存のメールチェックで通ったら、ドメインのほうをチェックとか。 link
t_yano できあいのアドレスチェックライブラリはたいていRFC準拠だなー *P3 link
t_yano @yuripop ドメインでチェックしたらいいんじゃないかなーと。簡単に。 *P3 link
monjudoh @yuripop iPhoneは知らんけど日本の携帯電話アドレスのドメイン判定はこれを参考にすると良いかも>http://tinyurl.com/ce25lw link
t_yano @yuripop つーかどうもJava Mail APIのInternetAddressクラスのコンストラクタを呼んでみて、AddressExceptionが起きたら不正、というチェック方法もあるそうな。 *P3 link
yuripop もういやだ正規表現とかもういい死ぬーーー>< こんなに頑張っても椅子職人なにももらえないもん link
yamashiro @yuripop エスケープし忘れ。/^[a-z0-9\._-\+]{3,30}@(?:[a-z0-9][-a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,4}|museum|travel)$/ link
t_yano @yuripop このミヤガワさんのやつはほぼドメイン見ているだけっぽいですね http://tinyurl.com/cp3as8 *P3 link
mattzt @yuripop メアドの正規表現なんか大して意味ないと思うけどなぁ。 link
kis @yuripop ^[@]+@^[.].*\.^[.]+ でいいよ、もう。 link
yuripop @yamashiro DoCoMoも通せるのは、多分これ /[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+@[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+(\\.[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#])*$/s link
yuripop @kis 最初それにしてたんですけど、Danさんの404見て不安になって… Perl5Util入れたりcommonsの入れたりいろいろやってるうちにパニックに… link
yuripop @mattzt 私もそんな気がしてきました。。。 link
mattzt @yuripop 送って届くのが正しいメールアドレスだよ。 link
yuripop @t_yano ほんとですね! >ドメインだけ InternetAddressのやつっていうのもありそう。というか、もともとはWicketのEmailAddressValidator使おうとしたんですけど、、 link
t_yano @yuripop EmailAddressValidatorだとdocomoが通らない気がする。 *P3 link
yuripop @t_yano そうなんです。。それでせめてDoCoMoに対応させようとして、深みにはまりました。。 link
monjudoh @t_yano RFC準拠とドコモを許すゆるい奴と、バリデータはバリデータであるので、それと併用すればドメイン見るだけで用が足りるのです。 link
t_yano メールアドレスチェックは正直おまけみたいなもんだと思ってる。どうせ間違ったアドレスを入力されてもわからないわけで。 *P3 link
mattzt あとは空メール送らせてFromから拾う。全面的には信用できないけど、手入力させるよりはまし。 link
mattzt ケータイメールの場合「送って届かない」は非常にまずいのです。 link
kis @yuripop そもそも、携帯のアドレスかどうかは正規表現では判定できないから、最初の正規表現でゆるく判定して、あとはヒューリスティックに場合わけして判定するしかないね。 link
yuripop 私ここの処理、本当は空メールのみで手入力なしにしてたんですけど、わざわざロジック追加して手入力も可にしたのよね…空メール応答で画面に飛ばす場合は、テキストボックスに入力済みのメアドが出るという、手の込んだ仕様です。 link
kis メールアドレスチェックとか、indexOf("@") > 0 でええんじゃね? link
monjudoh @kis ふぁぼったww>メールアドレスチェックとか、indexOf("@") > 0 でええんじゃね? link
mattzt @regtan @でsplitして要素数が2じゃなかったらアウトってのも入れとくべき。手入力を許すと絶対hoge@hoge@example.comな人でるから。 link