String.format = function()
{ var s = arguments[0];
for (var i = 0; i < arguments.length - 1; i++)
{ var reg = new RegExp("\\{" + i + "\\}", "gm");
s = s.replace(reg, arguments[i + 1]);
}
return s;
}
Run Code Online (Sandbox Code Playgroud)
请解释.谢谢.
它将第一个参数作为格式字符串{0},并将第二个参数的实例替换{1}为第三个参数,依此类推.
String.format('{0} there, {1}', 'Hi', 'Josh'); => Hi there, Josh
逐行:
format为本机String对象的函数(注意,而不是字符串的实例.为此,你要使用String.prototype).arguments是一个特殊的对象,它是函数执行上下文的一部分(也包括诸如值之类的东西this).它是阵列状(其具有范围从键0到arguments.length-1),但它不是一个数组(它不是的一个实例Array,并且因此不具有任何的它的原型的方法,如pop或push).的arguments对象是JavaScript函数可以如何利用参数的任意数量.{ i 的正则表达式,}其中i是循环迭代次数.第二个参数是正则表达式选项,gm启用全局和多行模式.