0

希望在电子邮件文本字段上创建表单验证。以前使用过验证来确保生成正确的电子邮件。

但这里希望创建一个更自定义的规则,只允许以 .ac.uk 格式结尾的电子邮件

在这里,用户可以提供任何大学/学院/机构,只要字符串中的最后 6 个字符 = .ac.uk,邮件的一般格式如下:email@university.ac.uk

最好使用 PHP 的解决方案,目前正在考虑使用此语句中的结尾部分的规则:

^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$

使这部分*(\.[a-z]{2,3}).ac.uk

非常感谢,非常感谢让克劳德

4

1 回答 1

1

我会首先运行电子邮件,filter_var($email, FILTER_VALIDATE_EMAIL)而不是使用简单的正则表达式。它并不完美(我发现了一些无法正确验证的边缘情况),但效果很好。一旦您知道这是一个有效的电子邮件地址,您就可以简单地信任substr($email, -6) == '.ac.uk'并完成它。就像是:

if (filter_var($email, FILTER_VALIDATE_EMAIL) 
    && strtolower(substr(trim($email), -6))) === '.ac.uk') {

    // Valid
}
于 2013-10-06T15:44:29.250 回答