简单的JS判断,求大神们指点

下面是我写的代码,为什么输入正确的邮箱还是提示不合法呢??

--------------------------------------------------------
<input type="text" name="email"id="email" onblur="checke()"/>
----------------------------------------------------------
哪里错了呢??求指教~~

你用正则表达式来进行判断,为什么使用 字符串相等来进行判断呢??

看下面的例子:
<scriptlanguage=javascript>
function checkEmail(el)//用正则表达式判断
{
varregu ="^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z-]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]|net|NET|asia|ASIA|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT|cn|CN|cc|CC)$"
varre = new RegExp(regu);
if(el.search(re) == -1) ///////////注意这里使用的。
{
returntrue; //非法
}
returnfalse;//正确
}
functionchecklogin()
{
var obj =document.getElementById(’emailid’);
if(checkEmail(obj.value))
{
alert("E-mail格式不正确,请检查!");
obj.focus();
returnfalse;
}
}
</script>
<formname="myform" action="" onSubmit="returnchecklogin();" method="post">
Email:
<inputname="email" id="emailid" type="text"size="25" />
<input name="submit"type="submit" value="登陆"/></form>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-22

正则表达式不是这么用的,不是说一个字符串直接与正则表达式判相等。修改你的代码如下:

// 判断邮箱格式是否合法
function checke(){
  var email = document.getElementById('email');
  var pattern = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
  if(!pattern.test(email.value)){
    alert('邮箱格式不合法!');
  }
}

第2个回答  2013-05-22
age=javascript>
function checkEmail(el)//用正则表达式判断
{9a-zA-Z-]*[0-9a-zA-Z-]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]|net|NET|asia|ASIA|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT|cn|CN|cc|CC)$"
varre = new RegExp(regu);
if(el.search(re) == -1) ///。
returntrue; //非法
rturnfalse;//正确
functionchecklogin()lert"E-mail格式不正确,请检查!");
obj.focus();
returnfalse;
<formname="myform" action="" onSubmit="returnchecklogin();" method="post">
Email:
<inputname="email" id="emailid" type="text"size="25" />
<input name="submit"type="submit" value="登陆"/></form>.
相似回答