Home  >  Q&A  >  body text

正则语法问题,为什么要用new

var regu =/^[1][3][0-9]{9}$/;
var re = new RegExp(regu);
if (re.test(s)) {
.....
}

为什么要new一次?

高洛峰高洛峰2805 days ago661

reply all(4)I'll reply

  • 欧阳克

    欧阳克2016-11-10 11:14:28

    两者其实是一样的效果,不需要new

    不过:在ES3中,直接创建字面量和new 方式不一样。字面量始终共享一个实例,而new 的方式会每次创建一个新的实例,ES5修复了。


    reply
    0
  • 三叔

    三叔2016-11-10 11:14:17

    两种不同的写法,一个叫字面量,一个叫申明,就像你写一个函数也是可以写成{},或者new Function()一样

    reply
    0
  • 欧阳克

    欧阳克2016-11-10 11:14:05

    二者关系类似var obj = {} 和 var obj = new Object();看使用场景的,普通的用/^……$/就行了,但有些比如带变量的就只能使用new了,你这里没有正文内容展示,两者都可以。

    reply
    0
  • 三叔

    三叔2016-11-10 11:13:52

    如果不 new 的话应该也是没问题的吧,想要应用在什么场景下呢?

    reply
    0
  • Cancelreply