求一个动态正则类似StringBuilder里的AppendFormat,要把里面的{n}替换成参数的内容。 求一个动态正则类似StringBuilder里的AppendFormat,要把里面的{n}替换成参数的内容。不知道怎么写这个表达式,真是愁死人了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script type="text/javascript">function appendFormat(format){ var argLen = arguments.length; var args = arguments; var s = 1, e = argLen; if(argLen == 2){ if(args[1] instanceof Array){ args = args[1]; s = 0, e = args.length; } } for(var i=s; i < e; i++){ format = format.replace("{" + (i-s) + "}", args[i]); } return format;}var var1 = 111;var var2 = 2.22;var var3 = "abcd";var var4 = [3, 4.4, 'X'];alert(appendFormat("1) {0}", var1));alert(appendFormat("2) {0}, {1}", var1, var2));alert(appendFormat("3) {0}, {1}, {2}", var1, var2, var3));alert(appendFormat("4) {0}, {1}, {2}", var4));</script> 楼上的不错了,还加了数组的处理,下面的是MZ以前写的,楼主也可以参考一下:<script type="text/javascript">String.prototype.format=function(){ if(arguments.length==0) return this; for(var s=this, i=0; i<arguments.length; i++) s=s.replace(new RegExp("\\{"+i+"\\}","g"), arguments[i]); return s;};alert("http://{0}/{1}/{2}".format("www.meizz.com", "web", "abc.htm"));alert("请输入{0},输完后再按存盘按钮".format("姓名"));</script> dh20156 兄台谢了,我主要是为了 RegExp("\\{"+i+"\\}","g")这个东东 呵呵。结了。 如何根据json的名称得到json的句柄 js xmlHttp跨域访问的问题 火狐和谷歌浏览器,在js里怎么选中一个单词? MyEclipse7.0 jquery 取值问题 会有什么原因引起Javascript编写的网页运行速度很慢和IE内存占用很大呢? jquery ui dialog的内容显示 送分题:100分求(渐隐渐现的文字效果,不要带闪烁,不要花哨,就朴素的显示又消失),在线等,马上给分! 请教!如何将这个日历变换一下方向? 如何将重复的数组合并? 字母加小数点的正则表达式, ext中分页时,PagingToolbar中显示‘page()of’ 怎样变成中文?
<script type="text/javascript">
function appendFormat(format){
var argLen = arguments.length;
var args = arguments;
var s = 1, e = argLen;
if(argLen == 2){
if(args[1] instanceof Array){
args = args[1];
s = 0, e = args.length;
}
}
for(var i=s; i < e; i++){
format = format.replace("{" + (i-s) + "}", args[i]);
}
return format;
}
var var1 = 111;
var var2 = 2.22;
var var3 = "abcd";
var var4 = [3, 4.4, 'X'];alert(appendFormat("1) {0}", var1));
alert(appendFormat("2) {0}, {1}", var1, var2));
alert(appendFormat("3) {0}, {1}, {2}", var1, var2, var3));
alert(appendFormat("4) {0}, {1}, {2}", var4));</script>
<script type="text/javascript">
String.prototype.format=function()
{
if(arguments.length==0) return this;
for(var s=this, i=0; i<arguments.length; i++)
s=s.replace(new RegExp("\\{"+i+"\\}","g"), arguments[i]);
return s;
};alert("http://{0}/{1}/{2}".format("www.meizz.com", "web", "abc.htm"));
alert("请输入{0},输完后再按存盘按钮".format("姓名"));
</script>