我遇到了一个体面的电子邮件正则表达式的描述。Javascript电子邮件正则表达式
/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/
但我也想加入一些标点符号到电子邮件中的第一部分,同时保留了其他的功能(如无重复。)
我想出了这样最好很远的是:
([\/!#$%&'*+-=?^_`{|}~]*\w+)([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,40})+$
但是这不会允许在电子邮件的第一部分结束时标点符号。
我觉得正则表达式很混乱,有谁知道如何正确实现这个?
例子:
Yes [email protected]
Yes [email protected]
Yes [email protected]
Yes [email protected]
Yes [email protected]
Yes [email protected][123.123.123.123]
Yes "email"@domain.com
Yes [email protected]
Yes [email protected]
Yes [email protected]
Yes [email protected]
Yes [email protected]
Yes [email protected]
No plainaddress
No #@%^%#[email protected]#[email protected]#.com
No @domain.com
No Joe Smith <[email protected]>
No [email protected]@domain.com
No [email protected]
No [email protected]
No [email protected]
No あいうえお@domain.com
No [email protected] (Joe Smith)
No [email protected]
No [email protected]
No [email protected]
你能提供样本输入吗? – anubhava
我可以给出的最佳提示是:用正则表达式开始小(只是基本的),并从那里展开。这使你控制你在做什么而不是像方法trial – 321X
试用错误看看这个线程[在JavaScript验证电子邮件地址](http://stackoverflow.com/questions/46155/validate-email-address -in-javascript) – Klante