javascript String.format

经常在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>

 

来源参考:

V1:http://samlin.cnblogs.com/archive/2008/01/25/1053610.html

V2:http://www.cnblogs.com/hwade/articles/867767.html

String.replace的特殊用法:

http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:String:replace

String.replace的妙用:

http://www.codebit.cn/pub/html/javascript/tip/javascript_replace/

posted @ 2008-08-14 01:20 果果’er 阅读(3882) 评论(5) 编辑 收藏

 回复 引用 查看   
#1楼2010-02-02 13:16 | HaoZhi      
巧妙个球。两种方法有什么不同么? 都是垃圾方法。用replace效率太低了 用拼字符串才是最好的方法 如果你要封装成format function也应该从拼字符串这方面想。
 回复 引用 查看   
#2楼[楼主]2010-02-05 09:30 | 果果’er      
楼上爱说“垃圾”这位你给个不垃圾的方法?只会说顶个P用。
 回复 引用 查看   
#3楼2010-10-13 15:13 | 王红福      
谢谢,LZ,有用
 回复 引用 查看   
#4楼2011-04-12 17:47 | olalaa      
@HaoZhi
你就一人才呐~

 回复 引用 查看   
#5楼2011-04-12 17:48 | olalaa      
收下了,谢谢
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1267480 fY5coczNA44=