以下这个是一个电子邮件地址验证
最主要的内容是判断输入的电子邮件地址是否正确
核心句子是: if(index1==-1||index2==-1||index2<=index1+1||index1==0||index2==strLength-1) 
在此句中, index1==-1是指搜索没有找到内容,同理index2==-1
但我不太明白index2<=index1+1 、index1==0和index2==strLength-1,这些是什么意思呢?<html>
<head>
<title>Sample Page!</title>
<script language="JavaScript" type="text/javascript">
<!--
//电子邮件地址格式信息
var rightMsg="";
rightMsg+="    1、电子邮件地址中同时含有'@'和'.'字符;\n";
rightMsg+="    2、'@'后必须有'.',且中间至少间隔一个字符;\n";
rightMsg+="    3、'@'不为第一个字符,'.'不为最后一个字符。\n";
function EmailAddressTest()
{
  //获取用户输入的电子邮件地址相关信息
  var EmailString=document.MyForm.MyEmail.value;
  var strLength=EmailString.length;
  var index1=EmailString.indexOf("@");
  var index2=EmailString.indexOf(".",index1);
  var msg="\n验证电子邮件地址实例:\n\n";
  msg+="电子邮件地址 : "+EmailString+"\n";
  msg+="返回验证信息 : ";
  //返回相关验证信息
  if(index1==-1||index2==-1||index2<=index1+1||index1==0||index2==strLength-1) 
  { 
    msg+="电子邮件地址不合法!\n\n"
    msg+="不能同时满足如下条件:\n";
    msg+= rightMsg;
  }
  else
  {
    msg+="电子邮件地址合法!\n\n";
    msg+="能同时满足如下条件:\n";
    msg+= rightMsg;
  }
  alert(msg);
}
-->
</script>
</head>
<body>
<center>
<form name="MyForm">
  电子邮件地址:  
  <input type="text" name="MyEmail" id="MyEmail" >
  <input type="button" value="验证电子邮件地址" onClick="EmailAddressTest()">
</form>
</center>
</body>
</html>

解决方案 »

  1.   

    index1:是"@"的位置
    index2:是"."的位置1.index2 <= index1 + 1 是说明"."在"@"前面
    2.index1 == 0 说明电子邮件的第一个字符是"@"
    3.index2 == strLength - 1 是说"."是电子邮件的最后一个字符
    以上这三条都不是正确格式的电子邮件
      

  2.   

       为什么一定用js验证呢 
         struts1或2不都可以写验证的配置文件吗 
         简简单单的一个问题,不要复杂化了<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN"
        "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
    <validators>
     
    <field name="user.username">
    <field-validator 
    type="requiredstring">
    <param name="trim">true</param>
    <message>用户名不能为空!</message>
    </field-validator>
    <field-validator type="stringlength">
    <param name="minLength">6</param>
    <param name="maxLength">12</param>
    <message>用户名的长度必须在6到12之间</message>
    </field-validator>
    </field>
    <field name="user.password">
    <field-validator type="requiredstring">
    <param name="trim">true</param>
    <message>密码不能为空!</message>
    </field-validator>
    <field-validator type="regex">
             <param name="expression">
             <![CDATA[(\w{4,25})]]>
             </param>
          <message>密码必须包含数字和字符,并且长度在4到25之间</message>
            </field-validator>
    </field>
    <field name="user.repassword">
    <field-validator type="fieldexpression">
    <param name="expression"><![CDATA[(password==repassword)]]></param>
    <message>两次输入的密码必须相同!</message>
    </field-validator>
    </field>
    <field name="user.age">
    <field-validator type="int">
    <param name="min">20</param>
    <param name="max">50</param>
    <message>年龄必须在20和50之间</message>
    </field-validator>
    </field>
    <field name="user.birthday">
    <field-validator type="date">
    <param name="min">1990-11-11</param>
    <param name="max">2010-11-11</param>
    <message>生日必须在1990-11-11到2010-11-11之间</message>
    </field-validator>
    </field>
    <field name="user.email">
    <field-validator type="email">
    <message>email格式不正确!</message>
    </field-validator>
    </field>
    <field name="user.url">
    <field-validator type="url">
    <message>个人主页格式不正确!</message>
    </field-validator>
    </field></validators>
      

  3.   

     if (document.payment.Recmail.value.length > 0 && !document.payment.Recmail.value.match( /^.+@.+$/ ) ) {
         alert("EMAIL 错误!请重新输入");
         document.payment.Recmail.focus();
      return false;
     }