如果你只想实现下面的功能
<script language=javascript>
String.prototype.Format2 = function()
{
if(arguments.length==0) return this;
var temp=new Array();
var arg = arguments;
for(var i=0;i<arguments.length;i++)
temp.push(arguments[i])
var i=0
return(this.replace(/\{\d+\}/g,function(a){return temp[i++]}))
}
alert("aaa{0}bbb{1}ccc".Format2("","333"));
</script>
<script language=javascript>
String.prototype.Format2 = function()
{
if(arguments.length==0) return this;
var temp=new Array();
var arg = arguments;
for(var i=0;i<arguments.length;i++)
temp.push(arguments[i])
var i=0
return(this.replace(/\{\d+\}/g,function(a){return temp[i++]}))
}
alert("aaa{0}bbb{1}ccc".Format2("","333"));
</script>
{
for(var i=0, s=this, n=arguments.length; i<n; i++) {
s = s.split("{"+ i +"}").join(arguments[i]);
}
return s;
}
{
if(arguments.length==0) return this;
try {
var arg = arguments;
return this.replace(/\{(\d+)\}/g, function(a,b){return arg[b]});
}
catch (ex) {
for(var i=0, s=this, n=arguments.length; i<n; i++) {
s = s.split("{"+ i +"}").join(arguments[i]);
}
}
return s;
}
arg[0]是空字符所以就返回了a即{0}