javascript String.format

來源:互聯網
上載者:User

 javascript String.format實現:挺精巧的,其中關鍵一點是replace方法的參數(可以為RegExp),以及js的閉包。如果對閉包有疑惑請Google一下。

代碼<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>

 

 

程式碼分析:

 代碼

String.prototype.format = function()
        {
            var args = arguments;
            return this.replace(/\{(\d+)\}/g,                
                function(s,i){
                    document.writeln("s:"+s+"i:"+i);//輸出相應的參數     結果:s:{0}i:0 s:{1}i:1            
                    return args[i];
                });
        }
        alert("{0}-{1}".format("1","2"));//輸出結果

 

來源參考:

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/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.