我正在撰写电子邮件简报的取消订阅选项。
我必须检测以下格式的电子邮件:
<0 or more alphanumeric letter/digit only>, then one <@> character, then <1 or more alphanumeric letter/digit>, then a <.> character, then <at least 2 alphanumeric letter/digits>
我在@字符之前需要“零”或更多字母数字字符,而不是“一”或更多,因为有时我想取消订阅整个域名,所以在这种情况下匹配的模式是@example.com
,我也是想要检测完整的电子邮件,它以字母数字字符开头。
请帮我写下要检测的代码。
我将来自网址的电子邮件作为$_GET['email']
例如url将是;
http://www.example.com/php/unsubscribe.php?email=@example.com
http://www.example.com/php/unsubscribe.php?email=@example.co
http://www.example.com/php/unsubscribe.php?email=abc@example.co
答案 0 :(得分:0)
您可以使用以下正则表达式。
[A-Za-z0-9]*@[A-Za-z0-9]+\.[A-Za-z0-9]{2,}
[A-Za-z0-9]{2,}
匹配两个或更多字母数字字符。您可以在{}
paranthesis中指定字符范围。
答案 1 :(得分:0)
/@.+\.[^\.]{2,}$/
编辑:我使用.*
和[^\.]
,即使OP要求“字母数字/数字” - 但是,有效的电子邮件地址包括破折号,下划线等等...完全匹配所有有效的电子邮件地址都非常复杂! (见:http://www.regular-expressions.info/email.html)