JavaScript 实用技巧

书写一个用于验证邮箱的正则表达式

2019-03-12  本文已影响0人  奕玄

首来看几个合法邮箱的例子:

根据对以上邮箱的观察,可将邮箱分为两部分(“@”左边和右边部分)来进行分析:

  1. 左边部分可以有数字、字母、下划线(_)和英语句号(.),因此可以表示成:[A-Za-z0-9]+([_\.][A-Za-z0-9]+)*
  2. 右边部分是域名,按照域名的规则,可以有数字、字母、短横线(-)和英语句号(.),另外顶级域名一般为 2 ~ 6 个英文字母(比如“cn”、“com”、“site”、“group”、“online”),故可表示为:([A-Za-z0-9\-]+\.)+[A-Za-z]{2,6}

注意两点:

用于邮箱验证的函数及测试用例如下:

/* 用于邮箱验证的函数 */
function validateEmail (email) {
  // 邮箱验证正则
  var reg = /^[A-Za-z0-9]+([_\.][A-Za-z0-9]+)*@([A-Za-z0-9\-]+\.)+[A-Za-z]{2,6}$/;
  return reg.test(email);
}

// 测试用例
var emailArr = ['1234@qq.com', 'wang@126.com', 'wang123@126.com', 'wang123@vip.163.com', 'wang_email@outlook.com', 'wang.email@gmail.com'];

var res = emailArr.map(function (item) {
  if (validateEmail(item)) {
    return item + ' 有效';
  }
  return item + ' 无效';
});
// 测试用例均有效
console.log(res);
上一篇下一篇

猜你喜欢

热点阅读