用正则表达式进行简单的邮箱校验
先说一波正则表达式的元字符:
d 表示数字
w 表示数字,字母和下划线
s 表示空格和制表符
D 表示非数字
W 表示非数字,字母和下划线
^ 在[ ]中表示除了,非;在[ ]之外表示输入字符串的开始位置
$ 表示输入字符串的结束位置
b 表示单词边界
{n,m} 表示最少n次,最多m次
{n, } 表示最少n次,最多不限
{ ,m} 表示最少不限,最多m次
{n} 表示正好n次
+ 表示一次或多次
? 表示一次或0次
邮箱的地址规则:数字、字母、下划线 + @ + 数字、英文 + . +英文(长度是2-4)
根据这个规则可以写出如下表达式:
var re=/\w+@[a-z0-9]+\.[a-z]{2,4}/;
这样会发现“中文wangyijsyy@126.com”或“wangyijsyy@126.comerli”也可以通过验证,所以需要加入“^”和“$”标记字符串的开始和结束位置。即:
var re=/^\w+@[a-z0-9]+\.[a-z]{2,4}$/;
上完整代码:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title></title> 5 <meta charset="utf-8"> 6 <script> 7 window.onload = function() 8 { 9 var oTxt = document.getElementById("txt"); 10 var oBtn = document.getElementById("btn"); 11 oBtn.onclick = function() 12 { 13 var re = /^\w+@[a-z0-9]+\.[a-z]{2,4}$/; 14 if(re.test(oTxt.value)) 15 { 16 alert("你写对了"); 17 } 18 else 19 { 20 alert("你写错了"); 21 } 22 } 23 } 24 </script> 25 </head> 26 <body> 27 <input type="text" id="txt"> 28 <input type="button" id="btn" value="校验"> 29 </body> 30 </html>