这里的ismail是个字符串,而不是正则,
可以用
re = new RegExp(ismail);
if(!re.test(testvar))
 ....

解决方案 »

  1.   

    创建: 
    一个文本格式或正则表达式构造函数 
    文本格式: /pattern/flags 
    正则表达式构造函数: new RegExp("pattern"[,"flags"]); 
    参数说明: 
    pattern -- 一个正则表达式文本 
    flags -- 如果存在,将是以下值: 
    g: 全局匹配 
    i: 忽略大小写 
    gi: 以上组合通常正则表达式的两种使用方法:
    1、
      var myReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/; 
      if(myReg.test(strEmail)){
       alert("email不合法");
      }else{
       alert("email不合法");
      }  
    2、
      var myReg = new RegExp("/^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/");
      if(myReg.test(strEmail)){
       alert("email不合法");
      }else{
       alert("email不合法");
      }  所以 var ismail=form1.xxxx.value; 这里读出来的值应该是字符串,当然应该使用第二种方式