我必须实现电子邮件验证,以便电子邮件地址不能以点开头或结尾。
代码如下:
function validateEmail(elementValue)
{
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
return emailPattern.test(elementValue);
}
最佳答案
为确保它不以句点/点/小数点开头,您可以进行的最简单的 JavaScript 兼容更改是使用负向前查找,如下所示:(?!\.)
在表达式的开头:
function validateEmail(elementValue)
{
var emailPattern = /^(?!\.)[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
return emailPattern.test(elementValue);
}
有很多情况这无法处理,并且根据您需要此需求的原因,这可能是创建一个完美的符合 RFC-2822 的电子邮件地址的数千件事之一(我实际上并不相信这存在于任何商业上可行的系统或“野外”) - 您实际上不需要担心。
您还可以通过使其不区分大小写来进一步简化:
/(?!\.)[a-z0-9._-]+@[a-z0-9.-]+\.[a-z]{2,4}/i
或者甚至更好...
/(?!\.)[\w.-]+@[a-z0-9.-]+\.[a-z]{2,4}/i
并且您可能需要考虑(如果您还没有考虑).travel
和 .museum
TLD,它们会因您的 而失效{2, 4}
长度限制
关于javascript - JavaScript 中的电子邮件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7768835/