在“:假正经哥哥”的博客里看到这个方法:
function Tp(temp, dataarry) {
return temp.replace(/\$\{([\w]+)\}/g,
function(s1, s2) { var s = dataarry[s2]; if (typeof (s) != "undefined") { return s; } else { return s1; } });
}
求解,什么意思啊?
ECMAScript v3 规定,replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。
结合起来就是, 将字符串 temp里面 符合\$\{([\w]+)\}模式的匹配${...}的大括号里面的单词作为关联数组dataarray的key, 用dataarray[key]的值替代。
hi,您是看了ecmascript v3的文档吗?非常感谢!您给的答案非常详细。
您在那里找的replace方法的解释啊,baidu上都没有呢,真的直接找ecmascript v3的文档么?
o,w3school上的一段解释和您的差不多,但是他的例子中函数只有1个参数。我给忽略了。。