2

RFC で有効なすべてのアドレスをキャッチする正規表現を作成しようとしましたが、いくつかの誤検知が発生しても問題ありません (ただし、それほど多くはありません)。これは私がこれまでに思いついたことです:

/^\b\S+@\S+\.[^\s@]{2,}\b$/

この式に一致しない RFC で有効なアドレスはありますか? または、それを改善するための提案はありますか? 誤検知は気にしませんが、いくつか見せていただければ幸いです。

4

5 に答える 5

5

この投稿をチェックしてください:

正規表現を使用して電子メール アドレスを検証する

これもあります:

http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html

6000 文字以上の正規表現のようなものはありません!

于 2010-05-18T13:05:30.847 に答える
3
"foo bar"@example.com

ローカル部分にはスペースを含めることができます (スペースは引用符で囲む必要がありますが、有効です)。

于 2010-05-18T12:57:04.457 に答える
3

電子メール アドレスにはネストされたコメントが含まれる場合があり、これはほとんどの正規表現アプローチを台無しにします。これは有効な電子メール アドレスです。

test(Oh (noes, an @) "sign")@(Here comes the domain)domain.com(TLD is com!!)

コメントがなくても、ローカル部分には引用符で囲まれた文字列が含まれる場合があり、これには空白が含まれる場合があります。私が見つけた最良のアプローチは次のとおりです@。それは必須です。だから私は使うだろう

/.+@.+/
于 2010-05-18T15:20:58.163 に答える
1
name@[1.2.3.4]

一致しませんが、有効です。テスト用の有効/無効なメール アドレスの一覧は、こちらにあります

于 2010-05-18T13:32:02.220 に答える
0

regexbuddy を試して、正規表現を検証してください。私がよく使うもう 1 つの便利な Web サイトはregexplib です。

于 2010-05-18T12:59:48.340 に答える