后者支持使用变量来创建正则表达式对象,前者不允许。其他都一样。

解决方案 »

  1.   

    也就是说前面那个不可以传参数,是静态的正则表达式
    后面那个可以传,可以和传入的参数结合,产生的正则表达式比较动态(说白了,可以字符串拼接啦)我的理解是不是正确啊?求教
      

  2.   

    前者叫“正则表达式对象”,后者是 RexExp 对象。
    以下摘自手册:不要将正则表达式对象跟全局 RegExp 对象混淆。尽管听起来像是一回事,但它们是截然不同的。正则表达式对象的属性只包含一个正则表达式的信息,而全局 RegExp 对象的属性包含了不断更新的每一个匹配出现的信息。正则表达式对象保存用于查找字符串中的字符组合时的模式。创建正则表达式对象后,或者它被传递给字符串方法,或者字符串被传递给一个正则表达式方法。有关最近进行查找的信息被保存在全局 RegExp 对象中。当预先知道查找字符串时用语法 1。当查找字符串经常变动或不知道时用语法 2,比如由用户输入得到的字符串。在使用前 pattern 参数被编译为内部格式。对语法 1 来说,pattern 在该脚本被装载时被编译。对语法 2 来说,pattern 在使用前,或调用 compile 方法时被编译。