javascript模擬實現replaceAll()

antzone發表於2017-04-04

本章節分享一段程式碼例項,它模擬實現了replaceAll()方法功能。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) {   
  if (!RegExp.prototype.isPrototypeOf(reallyDo)) {   
    return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith);   
  } 
  else {   
    return this.replace(reallyDo, replaceWith);   
  }   
}
var str="softwhy.com";
console.log(str.replaceAll('o','a',true));

上面的程式碼實現了我們的替換效果,下面介紹一下它的實現過程。

一.程式碼註釋:

(1).String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { },為String的圓形物件新增replaceAll()方法,第一個引數可以是正規表示式(用來匹配字串中要被替換的內容),也可以是字串中要被替換的內容,第二個引數規定使用什麼內容進行替換,第三個引數規定是否忽略大小寫。

(2).if (!RegExp.prototype.isPrototypeOf(reallyDo)),判斷reallyDo是否是一個正規表示式物件。

(3).return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith),利用正規表示式進行替換操作。

(4).else {     return this.replace(reallyDo, replaceWith);   

},進行基本的替換操作。

二.相關閱讀:

(1).prototype可以參閱javascript prototype一章節。

(2).isPrototypeOf()方法可以參閱isPrototypeOf()一章節。

(3).replace()方法可以參閱正規表示式replace()一章節。

(4).RegExp()構造方法可以參閱正規表示式的建立一章節。

相關文章