标签:
function format(string) { var args = arguments; var pattern = new RegExp("%([1-" + arguments.length + "])", "g"); return String(string).replace(pattern, function(match, index) { return args[index]; }); };
网上关于arguments的一段代码,不懂红色部分,查了array,place(pattern,function{}/regexp/string)的用法。
当replacement是函数时比较特殊,需要知道对应的参数表示什么。
详见w3scool(http://www.w3school.com.cn/jsref/jsref_replace.asp):
注意:ECMAScript v3 规定,replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数 是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。
标签:
原文地址:http://www.cnblogs.com/web-coding/p/4712279.html