一般用reg = new RegExp("...") 和 reg = /.../有什么区别呢?
<input type=text id="txt" onchange=fun() />
<script>
function fun(){
var txt = document.getElementById("txt").value;
//var  reg = /\d{6}/;
var reg = new RegExp("\d{6}");
alert(reg.test(txt));
}
</script>用下面这个正则就实现不了,用上面的就可以实现,为什么呢?

解决方案 »

  1.   

    var reg = /\d{6}/;
    var reg = new RegExp("\\d{6}");
    这俩才是等价的
    perl模式的正则可以少写一个反斜杠
      

  2.   

    一个是字面量,一个是对象
    new RegExp 中可以使用变量
    比如
    var i = 6;
    var reg = new RegExp('\\d{'+i+'}')
      

  3.   

    非常感谢!
    根据各位指导发现var reg = new RegExp("\d{6}");匹配的应该是6个d
    结果检测果然是的,呵呵!