方案1 (常用)
规则定义如下:
利用以上规则给出如下正则表达式:
var pattern = /^([A-Za-z0-9_-.])+@([A-Za-z0-9_-.])+.([A-Za-z]{2,4})$/;
|
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>邮箱/邮件地址的正则表达式及分析(JavaScript,email,regex)</title>
</head>
<body>
<div id="main"></div>
<script>
var pattern = /^([A-Za-z0-9_-.])+@([A-Za-z0-9_-.])+.([A-Za-z]{2,4})$/;
w("pattern.test('cn42du@163.com') = "+pattern.test('cn42du@163.com')+";");
w("pattern.test('ifat3@sina.com.cn') = "+pattern.test('ifat3@sina.com.cn')+";");
w("pattern.test('ifat3.it@163.com') = "+pattern.test('ifat3.it@163.com')+";");
w("pattern.test('ifat3_-.@42du.cn') = "+pattern.test('ifat3_-.@42du.cn')+";");
w("pattern.test('ifat3@42du.online') = "+pattern.test('ifat3@42du.online')+";");
w("pattern.test('毛三胖@42du.cn') = "+pattern.test('毛三胖@42du.cn')+";");
function w(val) {
document.getElementById("main").innerHTML += val +"<br />";
}
</script>
</body>
</html>
|
方案1说明
方案1是最常用的邮件正则表达式验证方案,也适合大多数的应用场景。从以上测试可以看出,该表达式不支持.online及.store结尾的域名。如需兼容这类域名(大于4位),调整正则结尾{2,4}的限制部分即可(例:{2,8})。另一个问题是邮件用户名不能包括中文。
方案2 (修订方案1)
规则补充如下:
上述isEmail()函数列举了常用的11种邮箱域名,大家可以根据需要适当补充或删减。
以上为三胖对邮箱正则表达式的理解和分析,如有不足请大家予以指正。