(1)在theStr中查找第一个'@'字符的下标;
(2)从atIndex开始,在theStr中查找第一个'.'字符的下标;
(3)你抄错了吧?我觉得应该是theSub=theStr.substring(0,dotIndex+1);substring就是“子字符串”的意思,这里提取出thStr中'.'之前的子串。
(4)
(atIndex<1):说明里边没有'@'这个字符;
atIndex!=theStr.lastIndexOf('@'):第一个'@'的位置跟最后一个'@'的位置不想等,说明theStr中有多个'@'
dotIndex<atIndex+2:说明'@'后面的'.'紧跟在'@'后面了;
theStr.length<=theSub.length:说明最后一个符号就是'@'之后的第一个'.',显然也是不合法的。

解决方案 »

  1.   

    这个方法太麻烦了,都用正则表达式验证了:<html> 
       <head> 
        <script language="Javascript1.2"> 
         <!-- start hiding 
         function verifyAddress(obj) 
         { 
          var email = obj.email.value; 
          var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; 
          flag = pattern.test(email); 
          if(flag) 
          { 
           alert('Your email address is correct!'); 
           return true; 
          } 
          else 
           { 
            alert('Please try again!'); 
            return false; 
            } 
          } 
         // stop hiding --> 
        </script> 
       </head> 
       <body> 
       <form onSubmit="return verifyAddress(this);"> 
       email:<input name="email" type="text"> 
       <input type="submit"> 
       </form> 
      </body> 
     </html>
      

  2.   

    var atIndex=theStr.indexOf('@');//这里面的index的下标是不是从0开始的?
    var dotIndex=theStr.indexOf('.',atIndex);//
    var flag=true;
    theSub=theStr.substring(0,dotIndex+1);//括号里面的是不是  大于等于0而小于dotIndex+1(没有取等号)
      

  3.   

    strObj.indexOf(subString[, startIndex])参数
    strObj
    必选项。String 对象或文字。
    subString
    必选项。要在 String 对象中查找的子字符串。
    starIndex
    可选项。该整数值指出在 String 对象内开始查找的索引。如果省略,则从字符串的开始处查找。strVariable.substring(start, end)
    start
    指明子字符串的起始位置,该索引从 0 开始起算。
    end
    指明子字符串的结束位置,该索引从 0 开始起算。stringvar.substr(start [, length ])
    stringvar
    必选项。要提取子字符串的字符串文字或 String 对象。
    start
    必选项。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
    length
    可选项。在返回的子字符串中应包括的字符个数。