首来看几个合法邮箱的例子:javascript
1234@qq.com
(纯数字)wang@126.com
(纯字母)wang123@126.com
(数字、字母混合)wang123@vip.163.com
(多级域名)wang_email@outlook.com
(含下划线 _
)wang.email@gmail.com
(含英语句号 .
)根据对以上邮箱的观察,可将邮箱分为两部分(“@”左边和右边部分)来进行分析:java
_
)和英语句号(.
),所以能够表示成:[A-Za-z0-9]+([_\.][A-Za-z0-9]+)*
-
)和英语句号(.
),另外顶级域名通常为 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);
复制代码