function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }
上面这个函数是什么意思啊?
function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }
上面这个函数是什么意思啊?
Javascript中的replace函数的第二个参数可以是函数。
如果是函数,将会用该函数的返回值进行替换。
/{(\w+)}/g 匹配所有 花括号中间的文字。比如a{b}c这样会匹配出b。
你的代码中的那个c多半是个map或对象。
说到这你可能明白了吧,是个参数替换的方法。下面是示例,看得清楚些。
[code="js"]
function abc(s, c) {
return s.replace(/{(\w+)}/g, function(m, p) {
console.log(m + ", " + p);//打印参数。
return c[p];
})
}
console.log(abc("a{b}c", {
b : "BBB"
}));
[/code]
输出如下:
{b}, b
aBBBc <-最终结果。