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字串
- C#根據雜湊演算法生成類似uuid字串C#演算法UI字串
- JavaScript字串和時間處理隨筆JavaScript字串
- 處理字串的方法都在這裡字串
- JavaScript:內建類和方法:字串 / 正則JavaScript字串
- 集合資料處理(C#、JavaScript 和 Java)C#JavaScript
- 字串處理字串
- Format and un-format money/currency in JavaScriptORMJavaScript
- 【C#】-對於Null值的處理方法C#Null
- c# 一些警告的處理方法C#
- 字串處理工具類字串
- Python中對字串格式化的方法:%、format()、以及f+字串詳解Python字串格式化ORM
- JavaScript事件處理JavaScript事件
- Sql Server資料庫類似正規表示式的字元處理問題SQLServer資料庫字元
- Guava字串處理Joiner、SplitterGuava字串
- PHP 陣列 & 字串處理PHP陣列字串
- bat 批處理字串操作BAT字串
- 簡單的字串處理字串
- shell字串處理總結字串
- 專案常用JS方法封裝(三) [ 字串相關處理 ]JS封裝字串
- C#基礎之前處理器,異常處理C#
- 連結字串String.prototype.format字串ORM
- 善用 Format 來格式化字串ORM字串
- sqlserver根據雜湊演算法生成類似uuid字串SQLServer演算法UI字串
- JavaScript 異常處理JavaScript
- JavaScript | 非同步處理JavaScript非同步
- javascript - 資料處理JavaScript
- 839相似字串字串
- 06.字元和字串處理字元字串
- C#處理json實戰C#JSON
- 數學處理類
- 一文秒懂!Python字串格式化之format方法詳解Python字串格式化ORM
- 9個必須掌握的Javascript處理陣列的方法JavaScript陣列
- C# StartsWith 字串的例項方法解析C#字串
- 實用處理字串的linux命令字串Linux
- 處理stdin輸入的字串指令字串
- Java入門教程四(字串處理)Java字串
- C語言之字串處理函式C語言字串函式
- MySQL 動態字串處理詳解MySql字串