replace()当第一个参数为正则表达式,第二个参数为函数的时候
var
tpl =
'Hei, my name is <%name%>, and I
\'
m <%age%> years old.';
var data = {
"name": "Barret Lee",
"age": "20"
};
var result = tpl. replace( /<%([^%>]+)?%>/g, function(s0, s1,s2,s3,s4){
console. log([s0,s1,s2,s3,s4 ]);
return data[s1];
var data = {
"name": "Barret Lee",
"age": "20"
};
var result = tpl. replace( /<%([^%>]+)?%>/g, function(s0, s1,s2,s3,s4){
console. log([s0,s1,s2,s3,s4 ]);
return data[s1];
});
传递给函数的第一个参数为正则匹配结果,如果正则表达式有括号第二个参数则是括号内容,接下来开始匹配位置,然后再是整个字符串,若函数还有多余参数则是undefined。