看不出问题<script>
var reg1=new RegExp("^[A-Za-z0-9]{4,20}$");
var reg2 = reg1;
var str = "2A3c";if (reg1.test(str))
alert("Reg1 成功");
else
alert("Reg1 失败");if (reg2.test(str))
alert("Reg2 成功");
else
alert("Reg2 失败");
</script>

解决方案 »

  1.   

    把“if”这段代码放在一个按钮的onclick事件里试试。有问题啊。btw,我的操作系统是windows 2003。
      

  2.   

    没问题啊
    <script>
    function bzscs(){var reg1=new RegExp("^[A-Za-z0-9]{4,20}$");
    var reg2 = reg1;
    var str = "2A3c";if (reg1.test(str))
    alert("Reg1 成功");
    else
    alert("Reg1 失败");if (reg2.test(str))
    alert("Reg2 成功");
    else
    alert("Reg2 失败");
    }
    </script><BUTTON onclick="bzscs()">chk</BUTTON>

    你有问题的代码是什么?
      

  3.   

    原始代码在这里,前面我描述的可能不大对劲,不好意思:<script language="javascript">
    var reg2=new RegExp("^[a-z]*$","g");
    function test()
    {
    var reg=reg2;
    var str=str_text.value;

    if (reg.test(str))
    result.value="成功";
    else
    result.value="失败";
    }
    </script>  测试表达式:
      <input name="str_text" type="text" id="str_text">  <br>  <br>
      测试结果为:
      <input name="result" type="text" id="result">  <br>  <br>  <input name="btn" type="button" id="btn" value="开始测试" onclick="test()">
      

  4.   

    帅哥你把test函数名和RegExp的方法test同名了
      

  5.   

    我把全局符号g去掉后发现问题解决了,可是为什么不能加上g呢?是什么道理?难道带*号的匹配算法不稳定吗?还是g有特殊的含义或者要求???
      

  6.   

    1.Regular Expression对象定义
    在脚本中使用正则表达式模式匹配,首先腰设定匹配模式,方法有如下两种
    (1)rgExp=/pattern*/[flags*]
    (2)rgExp=new RegExp("pattern",["flags"])
    注意:
    a.后者模式中的转义字符“\”需要用“\\”表示,用以抵消JS中转义字符"\"的意义,否则JS首先作为自己的转义概念来解释"\"后的字符。
    b.flags标识有以下几个(至JScript 5.5版本)
      g:设定当前匹配为全局模式
      i:忽略匹配中的大小写检测
      m:多行搜索模式