这个js代码怎么判断出形如hi_rs@online.sh.cn的邮箱为不合法呢?
这个js代码怎么判断出形如hi_rs@online.sh.cn的邮箱为不合法呢?
function IsMail( ChkStr )
{
if (Trim(ChkStr).length == 0) return false;
if (ChkStr.length < 5) return false;
if (ChkStr.indexOf(" ") > 2) return false;
var i = 1;
var sLength = ChkStr.length;
while ((i < ChkStr.length) && (ChkStr.charAt(i) != "@"))
{ i++
}
if ((i >= ChkStr.length) || (ChkStr.charAt(i) != "@")) return false;
else i += 2;
while ((i < ChkStr.length) && (ChkStr.charAt(i) != "."))
{ i++
}
if ((i >= ChkStr.length - 1) || (ChkStr.charAt(i) != ".")) return false;
else return true;
}
事实上hi_rs@online.sh.cn这样的邮箱也合法的。
而上述js代码却监测出不合法,代码哪里有问题?
或者请给个js代码给一个
function IsMail( ChkStr ) 函数
来判断邮箱合法的功能。
谢谢!
问题点数:100、回复次数:5Top
1 楼mjpclab(有只大猫猫 mjpclab.net)回复于 2004-08-02 23:35:18 得分 0
function IsMail(ChkStr)
{
var re=/\w+@\w+\.\w+/
if (re.test(ChkStr)==false)
{
alert('邮件格式非法!');
return false;
}
else
{
return true;
}
}Top
2 楼mjpclab(有只大猫猫 mjpclab.net)回复于 2004-08-02 23:35:35 得分 0
用正则表达式简单多了Top
3 楼blueice2002(蓝冰)回复于 2004-08-03 08:51:58 得分 100
<!--
function isEmail(x)
{
var email=x;
// valid format "a@b.cd"
invalidChars = " /;,:{}[]|*%$#!()`<>?";
if (email == "")
{
return false;
}
for (i=0; i< invalidChars.length; i++)
{
badChar = invalidChars.charAt(i)
if (email.indexOf(badChar,0) > -1)
{
return false;
}
}
atPos = email.indexOf("@",1)
// there must be one "@" symbol
if (atPos == -1)
{
return false;
}
if (email.indexOf("@", atPos+1) != -1)
{
// and only one "@" symbol
return false;
}
periodPos = email.indexOf(".",atPos)
if(periodPos == -1)
{
// and at least one "." after the "@"
return false;
}
if ( atPos +2 > periodPos)
// and at least one character between "@" and "."
{
return false;
}
if ( periodPos +3 > email.length)
{
return false;
}
return true;
}Top
4 楼aspczlover(你的骄傲...)回复于 2004-08-03 09:20:38 得分 0
用正则:
Function ValidateEmailAddr(strEmailAddr)
Dim re
Set re = new RegExp
re.pattern = "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"
ValidateEmailAddr=re.Test(strEmailAddr)
end function
response.write ValidateEmailAddr("hi_rs@online.sh.cn")&"<br>" '不合法返回falseTop
5 楼aspczlover(你的骄傲...)回复于 2004-08-03 09:23:25 得分 0
----》
Function ismail(strEmailAddr)
Dim re
Set re = new RegExp
re.pattern = "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"
ismail=re.Test(strEmailAddr)
end function
response.write ismail("hi_rs@online.sh.cn")&"<br>" '返回false
Top




