來源:互聯網 2008-08-15 06:29:38
評論經常在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>
經常在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>