使用javascript的兩種方式驗證郵箱的合法性。
第一種是不適用正則表達式:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> | |
<html xmlns=”http://www.w3.org/1999/xhtml”> | |
<head> | |
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /> | |
<title>不用正則表達式驗證郵箱的合法性</title> | |
<script type=”text/jscript”> | |
function check(){ | |
//定義flag標記返回值 | |
var result = false; | |
//獲取到表單中的值 | |
var emailVal = email.value; | |
if(emailVal.indexOf(‘@’)>0){//如果輸入的值中包含了@ | |
//進行分割 | |
var before = emailVal.split(‘@’)[0];//得到的是@之前的所有字符值 | |
var after = emailVal.split(‘@’)[1];//得到的是@之後的所有字符值 | |
if(isTrue(before) && after.indexOf(‘.’)>0){//如果@後面的包含了. | |
//判斷.的前面和後面是否都有內容 | |
alert(“ding”); | |
if(isTrue(after.split(‘.’)[0]) && isTrue(after.split(‘.’)[1])){ | |
alert(“合法郵箱檢測通過”); | |
return true; | |
} | |
} | |
} | |
if(!result){ | |
alert(“對不起您輸入的郵箱不合法”); | |
} | |
} | |
//判斷這裏的字符值是否都是合法的 | |
function isTrue(str){ | |
if(str.length == 0){ | |
return false; | |
} | |
//進行遍歷匹配 | |
for(var i=0; i<str.length; i++){ | |
//定義一個臨時存放字符遍歷 | |
var temp = str.substring(i,i+1);//對每個字符進行截取匹配 | |
if(!(temp>=’a'&&temp<=’z') && !(temp>=’A'&&temp<=’Z') && !(temp>=’0′&&temp<=’9′) && temp!=’_') | |
return false; | |
} | |
//否則返回true | |
return true; | |
} | |
</script> | |
</head> | |
<body> | |
<input type=”text” id=”email” /> | |
<input type=”submit” value=”檢查郵箱的合法性” οnclick=”check()”/> | |
</body> | |
</html> |
第二中方式是採用正則表達式的方式。
1
2
3
4
|
function
isEmail(str){
var
reg =
/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
return reg.test(str);
}
|
文章來源:http://javaforyejin.sinaapp.com/?p=52