JavaScript的compile方法
我是菜鸟,正在学习JavaScript,教程中的compile方法和网上查找到的资料对不上。不知道,哪个是正确的。以下是教程中的内容
compile()
compile() 方法用于改变 RegExp。
compile() 既可以改变检索模式,也可以添加或删除第二个参数。
例子:
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
patt1.compile("d");
document.write(patt1.test("The best things in life are free"));由于字符串中存在 "e",而没有 "d",以上代码的输出是:
truefalse
一开始只是想知道,怎么用compile方法删除第二个参数,但是却在网络上查找到了完全不同的内容。如果教程上是对的,请告诉我,如何删除第二个参数。
以下是网络上找到的内容
compile 方法把 pattern 转换为内部的格式,从而执行得更快。例如,这使得可以在循环中更有效地使用正则表达式。当重复使用相同的表达式,那么编译过的正则表达式使执行加速。然而,如果正则表达式改变了,这种编译毫无益处。
下面的例子举例说明了 compile 方法的用法:
function CompileDemo(){
var rs;
var s = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp"
// 只为大写字母创建正则表达式。
var r = new RegExp("[A-Z]", "g");
var a1 = s.match(r) // 查找匹配。
// 只为小写字母编译正则表达式。
r.compile("[a-z]", "g");
var a2 = s.match(r) // 查找匹配。
return(a1 + "\n" + a2;
}