经常在js里拼字符串,实在忍不下去了,在网上搜索了一下js版的String.format。
第一个写得太巧妙了,看了半天没看懂。
为了跟C#语法配合,还是选用第二个版本吧。
看了下没有在jquery里找到这方面的功能,也不知ASP.NET Ajax Library里是怎么实现这个的。
<script type="text/javascript">
//V1 method String.prototype.format = function() { var args = arguments; return this.replace(/\{(\d+)\}/g, function(m,i){ return args[i]; }); }
//V2 static String.format = function() { if( arguments.length == 0 ) return null;
var str = arguments[0]; for(var i=1;i<arguments.length;i++) { var re = new RegExp('\\{' + (i-1) + '\\}','gm'); str = str.replace(re, arguments[i]); } return str; }
var a = "I Love {0}, and You Love {1},Where are {0}! {4}"; alert(String.format(a, "You","Me"));
alert(a.format("You","Me")); </script>