1.字面量的参数不使用引号,而构造函数的参数使用引号;
2.字面量形式提供正则表达式的编译状态,而构造函数提供了表达式的运行时状态;
举例说明:
表达式: /${browserType}\:([\w\W]*?)\./
构造函数: new RegExp(${browserType}\\:([\\w\\W]*?)\\.
)
表达式不接收传参而构造函数接收传参
字面量形式和构造函数的相互转化:
当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)。比如,以下是等价的:
var re = new RegExp("\w+");
var re = /\w+/;
.replace(),脚本中使用 2 指明括号里先前的匹配
var re = /(\w+)\s(\w+)/;
var str = "John Smith";
var newstr = str.replace(re, "1");
print(newstr);
.match方法,依次输出匹配结果、括号1匹配结果、括号2匹配结果...
"safari:11.1".match(/(safari):([\w\W]*?)./)
// ["safari:11.", "safari", "11"]
网友评论