Javascript:使用正则表达式检测数字格式

Javascript:使用正则表达式检测数字格式,javascript,regex,string,format,roman-numerals,Javascript,Regex,String,Format,Roman Numerals,我有这样一个字符串: 祝贺{0}在{3}中赢得{1}{2:#,#####0.##的{0} 数组数据如下所示: [“加入”,“美元”,10000,“扑克回合10”] 我写了一个函数来格式化那个字符串,但我的问题是无法检测数字格式 String.prototype.format=函数(arg){ var rep_fn=未定义; if(typeof arg==“对象”){ rep_fn=函数(m,k){return arg[k];}; } 否则{ var args=参数; rep_fn=函数(m,k

我有这样一个字符串:

祝贺{0}在{3}中赢得{1}{2:#,#####0.##的{0}

数组数据如下所示:

[“加入”,“美元”,10000,“扑克回合10”]

我写了一个函数来格式化那个字符串,但我的问题是无法检测数字格式

String.prototype.format=函数(arg){
var rep_fn=未定义;
if(typeof arg==“对象”){
rep_fn=函数(m,k){return arg[k];};
}
否则{
var args=参数;
rep_fn=函数(m,k){返回args[parseInt(k)];};
}
返回此。替换(/\{(\w+)\}/g,rep\u fn);
};
var fm=“祝贺{0}在{3}中赢得{1}{2:#,####0.##的{0}”;
var数据=[“加入”,“美元”,10000,“扑克回合10”];

控制台日志(格式(数据))您有很多冗余代码。您不需要
var args=arguments
。永远不会执行else块,因为if始终为true

String.prototype.format=函数(arg){
for(设i=0;iarg[k]);
};
var fm=“祝贺在{3}中赢得{1}{2}的{0}”;
var数据=[“加入”,“美元”,10000,“扑克回合10”];

控制台日志(格式(数据))else块从未执行