javascript String.format

 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/

原文地址:https://www.cnblogs.com/netwenchao/p/1670956.html