JScript实现的一个String.Format方法
2010-09-14 13:19:17 来源:WEB开发网在.NET Framework的BCL类String中,有一个很有用的静态方法String.Format。当我们在输出一个需要由多个变量条目来组成的字符串时,非常的有用。特别是在对多语言支持时,使用Format方法来显示更加有价值。为了方便脚本编程,下面实现了一个JScript版的Format方法。
BCL中的String.Format()是一个变参数的方法,第一个参数为格式化字符串,从第二个参数开始为格式化条目中的替换值。由于JavaScript天生就支持任意参数个数,所以可以很自然的实现一个非常sexy的Format方法。
StringHelper.Format()方法源代码如下:
//StringHelper.Format('{0},{2},{1}','abc','def','ghi');
//return"abc,ghi,def".
StringHelper.Format=function(format)
{
if(arguments.length==0)
{
return'';
}
if(arguments.length==1)
{
returnString(format);
}
varstrOutput='';
for(vari=0;i<format.length-2;)
{
if(format.charAt(i)=='{'&&format.charAt(i+1)!='{')
{
vartoken=format.substr(i);
varindex=String(token.match(/d+/));
if(format.charAt(i+index.length+1)=='}')
{
varswapArg=arguments[Number(index)+1];
if(swapArg)
{
strOutput+=swapArg;
}
i+=index.length+2;
}
}
else
{
if(format.charAt(i)=='{'&&format.charAt(i+1)=='{')
{
strOutput+=format.charAt(i);
i++
}
strOutput+=format.charAt(i);
i++;
}
}
strOutput+=format.substr(i);
returnstrOutput.replace(/{{/g,'{').replace(/}}/g,'}');
}
更多精彩
赞助商链接