replace()
一个RegExp 对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉
指定一个函数作为第二个参数。
在这种情况下,当匹配执行后,该函数就会执行。
函数的返回值作为替换字符串。
(注意:上面提到的特殊替换参数在这里不能被使用。)
另外要注意的是,如果第一个参数是正则表达式,并且其为全局匹配模式,那么这个方法将被多次调用,每次匹配都会被调用。
下面是该函数的参数:
变量名 代表的值
match 匹配的子串。(对应于上述的$&。)
p1,p2, ... 假如replace()方法的第一个参数是一个RegExp 对象,则代表第n个括号匹配的字符串。(对应于上述的$1,$2等。)例如,如果是用 /(\a+)(\b+)/ 这个来匹配,p1 就是匹配的 \a+,p2 就是匹配的 \b+。
var str = ("div#demo.demo");
var reg = /^(\w+)#(\w+)\.(\w+)$/;
var str1 = str.replace(reg,function (match, $1, $2, $3) {
return "<" + $1 + " id=\"" + $2 + "\" class=\"" + $3 + "\"></" + $1 + ">";
});
console.log(str1);