JavaScript類似c#字串處理方法format()
熟悉c#的應該知道有format()這麼一個方法,下面就來模仿一下,JavaScript也實現此功能。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼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 index=0;index<arguments.length;index++){ if(arguments[index]==undefined){ return ""; } else{ var reg=new RegExp ("({["+index+"]})","g"); result = result.replace(reg, arguments[index]); } } } 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);
以上程式碼是實現了我們想要的效果,下面介紹一下它的實現過程:
一.實現原理:
原理比較簡單,這裡長話短說,具體可以參閱程式碼註釋。使用正規表示式找出要被替換的字串,然後使用指定的內容替換這些字串即可,在程式碼中,指定的內容有的是字串直接量,有的則是物件的屬性值。
二.程式碼註釋:
1.String.prototype.format=function(args){{}),通過原型物件為String物件新增例項方法format,此方法就是用來處理字串。
2.if(arguments.length>0),如果傳遞引數的個數大於0。
3.var result=this,將this的引用賦值給變數result。
4.if(arguments.length==1&&typeof(args)=="object"),用來判斷傳遞的引數是否是一個物件直接量。
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 index=0;index<arguments.length;index++),遍歷傳遞的引數。
10.if(arguments[index]==undefined),如果為undefined,就返回空字串。
11.var reg=new RegExp("({["+index+"]})","g"),用來匹配指定的字串。
12.result=result.replace(reg,arguments),進行替換。
13.return result,返回替換後的字串。
14.return this,如果沒有傳遞引數,則返回字串本身。
三.相關閱讀:
1.arguments可以參閱javascript arguments物件一章節。
2.typeof可以參閱javascript typeof 運算子一章節。
相關文章
- javascript字串處理類JavaScript字串
- JavaScript常用的字串處理方法JavaScript字串
- C#根據雜湊演算法生成類似uuid字串C#演算法UI字串
- JavaScript字串和時間處理隨筆JavaScript字串
- 處理字串的方法都在這裡字串
- string.Format對C#字串格式化ORMC#字串格式化
- JavaScript:內建類和方法:字串 / 正則JavaScript字串
- ASP中一個字串處理類(VBScript) (轉)字串
- 字串處理字串
- 集合資料處理(C#、JavaScript 和 Java)C#JavaScript
- (轉)Shell常用處理字串方法(備查)字串
- c#之string.format方法示例C#ORM
- 類似 MSDN 導航樹效果 ASP.Net(C#) + JavaScript 實現! (轉)ASP.NETC#JavaScript
- C#的訊息處理方法 (轉)C#
- JavaScript & PHP模仿C#中string.format效果JavaScriptPHPC#ORM
- 【轉】shell指令碼處理字串的常用方法指令碼字串
- awk 字串處理字串
- abap 字串處理字串
- julia與python類似之處Python
- 利用Delphi訊息處理建立類似Windows開始選單 (轉)Windows
- Format and un-format money/currency in JavaScriptORMJavaScript
- c# 一些警告的處理方法C#
- 【C#】-對於Null值的處理方法C#Null
- windows批處理之一:字串處理Windows字串
- 字串處理工具類字串
- 字串的一個操作(替換類似陣列字串中的項)字串陣列
- jstl處理字串JS字串
- C# SQLiteHelper類似SqlHelper類實現存取Sqlite資料庫C#SQLite資料庫
- LoadRunner字串處理 - 補齊字串字串
- Sql Server資料庫類似正規表示式的字元處理問題SQLServer資料庫字元
- c#影象處理C#
- sqlplus"strace: exec: Exec format error"故障處理SQLORMError
- C#影像處理類(網上程式碼、還未使用)C#
- Go語言常用字串處理方法總結Go字串
- JavaScript事件處理JavaScript事件
- Python中對字串格式化的方法:%、format()、以及f+字串詳解Python字串格式化ORM
- Guava字串處理Joiner、SplitterGuava字串
- PHP 陣列 & 字串處理PHP陣列字串