js中的string.format

xiaoxiao2021-02-28  115

源于C#中的string.Format()

 

String.prototype.format =  function(args) {      var result =  this;      if (arguments.length > 0) {              if (arguments.length == 1 &&  typeof (args) == "object") {              for ( var key  in args) {                  if(args[key]!=undefined){                      var reg =  new RegExp("({" + key + "})", "g");                     result = result.replace(reg, args[key]);                 }             }         }          else {              for ( var i = 0; i < arguments.length; i++) {                  if (arguments[i] != undefined) {                     // var reg =  new RegExp("({[" + i + "]})", "g");//这个在索引大于9时会有问题,谢谢 何以笙箫的指出             var reg= new RegExp("({)" + i + "(})", "g");                     result = result.replace(reg, arguments[i]);                 }             }         }     }      return result; }

 

 // 两种调用方式   var  template1 = " 我是{0},今年{1}了 " ;   var  template2 = " 我是{name},今年{age}了 " ;  var  result1 = template1.format( " loogn " , 22 );   var  result2 = template2.format({name: " loogn " ,age: 22 });   // 两个结果都是"我是loogn,今年22了"

 

转载请注明原文地址: https://www.6miu.com/read-18268.html

最新回复(0)