function checkemail(str) {
            if (isValidEmail(str)) {
                return ("通过");
            }
            else {
                return ("重写"); 
            }
        }
这个函数调用isValidEmail()函数
function isValidEmail(str){
str = trim(str);
len = str.length;
//没有@或者@在首尾
if((str.indexOf('@') == -1)||(str.indexOf('@') == 0)||(str.indexOf('@') == len-1))
     return false; 
if(str.indexOf('@') != str.lastIndexOf('@'))   
     return false;
if(str.indexOf('.') == -1)
     return false;
     if (str.lastIndexOf('.') == (len-1) )//'.'在最后一位
     return false;
     for(var j=0;j<len-1;j++){//判断是否有".."或者"@."
     if( (str.charAt(j) == '.' && str.charAt(j+1) == '.') ||( str.charAt(j) == '@' && str.charAt(j+1) == '.' ) )
     return false;
     }

    validstr = "1234567890abcdefghijklmnopqrstuvwxyz_-.~@$#";
    lowerstr = str.toLowerCase();
    for(i=0;i<len;i++){
        if(validstr.indexOf(lowerstr.charAt(i)) == -1){
            return false;
            }
        }          
 
   return true;
}
页面上是这样写的
 <input id="email" type="text" /><input id="Button1" type="button" value="检查"  onclick="checkemail(this.value)"/>
全过程是验证input里面输入的内容,是不是Email格式,但是我这样写,结果没有反应?大家帮我看看怎么回事?

解决方案 »

  1.   

    <input id="email" type="text" /><input id="Button1" type="button" value="检查" onclick="checkemail(email.value)"/>
    验证是这样 文本框吧  ~~~
      

  2.   

    str = trim(str);
    这里的trim函数的定义在哪里?javascript不自带trim方法的。另外return ("通过");  //最好改成alert("通过");return ("重写");  //最好改成alert("重写");
      

  3.   

    不往函数里传值,在js中document.getElementbyId("email")试试
      

  4.   


    function checkemail(str)
    {var pattern = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
    var flag = pattern.test(str); 
    if(flag){
    return ("通过");
    }
    else {
    return ("重写"); 
    }}
    <input id="email" type="text" /><input id="Button1" type="button" value="检查" onclick="checkemail(document.getElementById('email').value)"/>
      

  5.   

    我把input里面的值取到了,用document.getElementById('email').value)取到。但是还是不可以,是不是js函数写的有问题?
    <input id="email" type="text" /><input id="Button1" type="button" value="检查"  onclick="checkemail(document.getElementById('email').value)"/>
      

  6.   

    return ("重写"); 
    这样写没用  要提示出来 alert("通过")………………
      

  7.   

    用alert之后,不管输入文本框对不对,cheakemail()都之后跳出“重写”?
    是不是我两个js函数。逻辑有问题?
      

  8.   

    你用我的函数看看那  email验证写那么长做什么啊 
      

  9.   

    可以了,通过验证了!谢谢soommm