【发布时间】:2014-12-12 10:56:15
【问题描述】:
如果您能在 PHP 中验证电子邮件地址,我将不胜感激。我需要的电子邮件格式为 firstname.lastname@mohawkcollege.TLD、.com、.ca 或 .org,它们是有效的 TLD。
我的功能是:
function validateEmail($email)
{
$regex = "/[a-zA-Z0-9_-.+]+@[a-zA-Z0-9-]+.[a-zA-Z]+/";
if (!preg_match($regex, $email))
{
return "<li>Email is in wrong format</li>"
}
}
【问题讨论】:
-
“不工作”是什么意思?你的脚本能运行吗?你试过什么?
-
您应该转义第一个字符类中的最后一个连字符。也就是说,验证电子邮件地址是出了名的困难,尤其是使用 RegExp。使用 PHP
filter_var()函数并设置FILTER_VALIDATE_EMAIL。 -
根据您的问题,您的正则表达式应该是:regex101.com/r/zF1gI2/2 - 请更清楚您的问题,因为我认为这不正确...
-
代码运行,但它接受我不想要的电子邮件格式。我希望电子邮件是 firstna.lastname@mohawkcollege.domain .ca 或 .com 或 .org
-
@PedroIt - 你了解你当前使用的正则表达式吗?它显然不检查 mohawkcollege,更不用说那些 TLD。快速搜索像这样的PHP regex tutorial 可能会对您有所帮助。