javascript - JavaScript 中的电子邮件验证

标签 javascript regex validation

我必须实现电子邮件验证,以便电子邮件地址不能以点开头或结尾。

代码如下:

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/

相关文章:

javascript - WebGL - 更改对象之间的颜色

javascript - NowJS - 客户端/浏览器通信(无需联系 "everyone")

正则表达式,R 中的多行提取

Javascript - ASP.Net 按钮单击上的文本框验证

javascript - 如何在几个 div 中迭代切换元素

javascript - React v16.5.2 - 之后无条件屏幕刷新引发弹出消息

regex - 如何使用 perl 正则表达式检测阿拉伯字符?

regex - 正则表达式以不同格式从字符串中查找数字

javascript - 这是表单的代码,涉及输入验证。如何让JS代码正常运行?

php - Laravel 自定义验证规则