使用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=”检查邮箱的合法性” onclick=”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
原文链接:https://www.f2er.com/regex/362048.html