ちゃっぴの監禁部屋

ガチガチに締めすぎて動きがとれなくなる。。。

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  405  : 記事  5  : コメント  3690  : トラックバック  134

ニュース

記事カテゴリ

書庫

日記カテゴリ

Communities

Personal Information

これは何でょう? の回答。

一発目で答えが出てしまいましたが、答えは E-mail address ですね。E-mail address の形式は RFC 5321 で定義されています。

RFC 5321 Simple Mail Transfer Protocol 4.1.2. Command Argument Syntax より

Domain = sub-domain *("." sub-domain) sub-domain = Let-dig [Ldh-str] Let-dig = ALPHA / DIGIT Ldh-str = *( ALPHA / DIGIT / "-" ) Let-dig address-literal = "[" ( IPv4-address-literal / IPv6-address-literal / General-address-literal ) "]" ; See Section 4.1.3 Mailbox = Local-part "@" ( Domain / address-literal ) Local-part = Dot-string / Quoted-string ; MAY be case-sensitive Dot-string = Atom *("." Atom) Atom = 1*atext Quoted-string = DQUOTE *QcontentSMTP DQUOTE QcontentSMTP = qtextSMTP / quoted-pairSMTP quoted-pairSMTP = %d92 %d32-126 ; i.e., backslash followed by any ASCII ; graphic (including itself) or SPace qtextSMTP = %d32-33 / %d35-91 / %d93-126 ; i.e., within a quoted string, any ; ASCII graphic or space is permitted ; without blackslash-quoting except ; double-quote and the backslash itself.

RFC 5322 Internet Message Format 3.2.3. Atom より

atext = ALPHA / DIGIT / ; Printable US-ASCII "!" / "#" / ; characters not including "$" / "%" / ; specials. Used for atoms. "&" / "'" / "*" / "+" / "-" / "/" / "=" / "?" / "^" / "_" / "`" / "{" / "|" / "}" / "~" atom = [CFWS] 1*atext [CFWS]

RFC の定義自体が正規表現を意識して書かれているような気がするので、正規表現にしてしまえ!
ということで、下記を記述。

// Local-part
var atom = "[A-Za-z0-9!#\\$%&'\\*\\+\\-/=\\?\\^_`\\{\\|}~]+";
var dotString = atom + "(?:\\." + atom + ")*";
var qtextSMTP = "[\\x20-\\x21\\x23-\\x5B\\x5D-\\x7E]";
var quotedPairSMTP = "\\\\[\\ox20-\\x7E]";
var quotedString = "\\\"(?:" + qtextSMTP + "|" + quotedPairSMTP + ")+\\\"";
var localPart = "(" + dotString + "|" + quotedString + ")";

// Domain
var letDig = "[A-Za-z0-9]";
var ldhStr = "[A-Za-z0-9\\-]*" + letDig + "+";
var subdomain = letDig + "(?:" + ldhStr + ")*";
var domain = "(" + subdomain + "(?:\\." + subdomain + ")*)";
      
var mailbox = localPart + "@" + domain;

で、出来上がったのが下記になります。

^([A-Za-z0-9!#\$%&'\*\+\-/=\?\^_`\{\|}~]+(?:\.[A-Za-z0-9!#\$%&'\*\+\-/=\?\^_`\{\|}~]+)*|\"(?:[\x20-\x21\x23-\x5B\x5D-\x7E]|\\[\ox20-\x7E])+\")@([A-Za-z0-9](?:[A-Za-z0-9\-]*[A-Za-z0-9]+)*(?:\.[A-Za-z0-9](?:[A-Za-z0-9\-]*[A-Za-z0-9]+)*)*)$

めんどくさいので address-literal には対応していませんが、RFC 5321 に準拠していない E-mail address を弾くのに使えるでしょう。

Bug があったらおせ~てください。

投稿日時 : 2009年4月22日 22:42

コメント

# re: E-mail address (RFC 5321) の正規表現 2009/04/23 13:26 刈歩 菜良 CTP
ご、ごめん...

てか、RFC見て自分で作ったんや。
すご~~~~~~~~~
\(◎o◎)/!

# re: E-mail address (RFC 5321) の正規表現 2009/04/23 19:43 ちゃっぴ
基本的な文法しか使っていないですし、仕様を機械的に実装しているだけなので、正規表現の基礎ができている人ならだれでもできると思いますよ。

RFC の表現についてはちょっとばかしなれる必要あるけどね。

# AyJAVTerFsbnrNuZ 2012/01/07 13:34 http://www.luckyvitamin.com/p-123061-yes-to-carrot
Honestly, not bad news!...

# おかげでこのような素晴らしいブログ投稿のための多くの 2012/01/13 13:16 search engine optimization vancouver
あなたがここに持っているが、同じトピックをカバーする任意のメッセージボードを知っていた場合、私はについて興味があった非常に良いサイトは、ここで議論?私は本当に私は同じ興味を共有する他の有識者から意見を得ることができるコミュニティの一員になりたいです。何か提言をしている場合、私に知らせてください。ありがとう!

# おかげでこのような素晴らしいブログ投稿のための多くの 2012/01/13 14:48 search engine optimization vancouver
こんにちは!これは、あなたのブログに私の最初の訪問です!私たちは、ボランティアのチームであり、同じニッチで社会の新たなイニシアティブを開始。あなたのブログは私達に上で動作するように有益な情報を提供した。あなたは素晴らしい仕事をした!

# Соберем для Вас по сети интернет базу данных потенциальных клиентов для Вашего Бизнеса Подробности на http://prodawez.org.in/ 2012/10/10 17:19 cesynisee
Соберем для Вас по сети интернет базу данных потенциальных клиентов для Вашего Бизнеса Подробности на http://prodawez.org.in/

# Баш 2012/12/31 20:04 alfftgh
Баш

# re: [Windows Mobile]USBキーボードを動かす程度の能力 2017/07/22 18:59 meadc
http://www.ray-ban-sunglasses.us ray-ban sunglasses
http://www.coach-factory-outlet.net coach outlet
http://www.puresoie.fr/ Nike Air Max 90
http://www.katespade.org.au Kate Spade - Online Sale
http://www.coachcarter.com.au coach carter
http://www.mizunoshoes.us Wave Prophecy 2 Shoes
http://www.pandora-rings.co.uk pandora uk
http://www.top-sunglasses.org top sunglasses
http://www.pumashoes.us/ puma shoes
http://www.salomon-shoes.com salomon sneakers
http://www.grandregency.fr/ Air Max Enfants
http://www.swatchwatch.us/ swatch watch
http://www.premierjewelry.us Premier Jewelry - Official
http://www.rayban-outlet.co/ ray ban outlet
http://www.pandoracharms.cc/ pandora charms
http://www.meteo-curtafond.fr/ Nike Air Jordan Enfants
http://www.prada-sunglasses.us Prada Sunglasses - Official
http://www.michael-kors.uk michael kors watches
http://www.artsensuel.fr Nike Air Jordan
me adc7.22trj

# michael kors factory outlet 2018/05/21 12:58 jinyizhixia
http://www.cheap-raybans.com.co
http://www.katesspadeoutlet.us.com
http://www.red-bottomshoes.us.org


Post Feedback

タイトル
名前
Url:
コメント