最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript模擬C#格式化字符串

 更新時間:2015年08月26日 17:44:53   投稿:mrr  
學(xué)習(xí)C#的朋友都知道format()這個方法,本文給大家介紹在javascript中如何實現(xiàn)此操作,js模擬C#字符串格式化操作,需要的盆友一起學(xué)習(xí)吧

JS 模擬C# 字符串格式化操作

/***
** 功能: 字符串格式化替換操作
***/
String.prototype.format = function () {
 var args = arguments;
 return this.replace(/\{(\d+)\}/g,
 function (m, i) {
  return args[i];
 });
}

js實現(xiàn)類似c#中的字符串處理函數(shù)format():

熟悉c#的應(yīng)該知道有format()這么一個方法,下面就來模仿一下,在javascript中也實現(xiàn)此功能。

代碼實例如下:

String.prototype.format=function(args){ 
 if(arguments.length>0){ 
 var result=this; 
 if(arguments.length==1&&typeof(args)=="object"){ 
  for(var key in args){ 
  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){ 
   return ""; 
  } 
  else{ 
   var reg=new RegExp ("({["+i+"]})","g"); 
   result = result.replace(reg, arguments[i]); 
  } 
  } 
 } 
 return result; 
 } 
 else{ 
 return this; 
 } 
}
var fistStr="{0}歡迎您,希望大家能夠得到想要的{1}";
var secondStr="{webName}歡迎您,希望大家能夠得到想要的{favoriate}";
var firstOut=fistStr.format("","東西");
var secondOut=secondStr.format({webName:"",favoriate:"東西"});
console.log(firstOut);
console.log(secondOut); 

以上代碼是實現(xiàn)了我們想要的效果,下面介紹一下它的實現(xiàn)過程:

一.實現(xiàn)原理:

原理比較簡單,這里長話短說,具體可以參閱代碼注釋。使用正則表達式找出要被替換的字符串,然后使用指定的內(nèi)容替換這些字符串即可,在代碼中,指定的內(nèi)容有的是字符串直接量,有的則是對象的屬性值。

二.代碼注釋:

1.String.prototype.format=function(args){{}),通過原型對象為String對象添加實例方法format,此方法就是用來處理字符串。

2.if(arguments.length>0),如果傳遞參數(shù)的個數(shù)大于0。

3.var result=this,將this的引用賦值給變量result。

4.if(arguments.length==1&&typeof(args)=="object"),用來判斷傳遞的參數(shù)是否是一個對象直接量。

5.for(var key in args),遍歷對象直接量中的屬性。

6.var reg=new RegExp("({"+key+"})","g"),用來匹配指定的字符串。

7.result=result.replace(reg,args[key]),用屬性值替換匹配的字符串。

8.else{},如果傳遞的不是一個對象直接量。

9.for(var i=0;i<arguments.length;i++),遍歷傳遞的參數(shù)。

10.if(arguments==undefined),如果為undefined,就返回空字符串。

11.var reg=new RegExp("({["+i+"]})","g"),用來匹配指定的字符串。

12.result=result.replace(reg,arguments),進行替換。

13.return result,返回替換后的字符串。

14.return this,如果沒有傳遞參數(shù),則返回字符串本身。

相關(guān)文章

最新評論

万全县| 贞丰县| 巴林左旗| 三都| 巴塘县| 东光县| 古丈县| 自贡市| 德惠市| 大洼县| 四平市| 张北县| 平陆县| 郓城县| 三明市| 吉安县| 邳州市| 敖汉旗| 玉门市| 遵义市| 永仁县| 万宁市| 武定县| 天柱县| 平邑县| 木兰县| 观塘区| 山阳县| 罗定市| 双城市| 左贡县| 罗源县| 阿克| 北海市| 桐庐县| 门头沟区| 水富县| 宾阳县| 出国| 井冈山市| 伊吾县|