JavaScript模擬實現replaceAll方法
本文介紹一下JavaScript模擬實現replaceAll功能,也就是將字串中的所有指定內容替換掉,首先看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var str="螞蟻部落歡迎您,希望大家在螞蟻部落能夠獲得想要的東西"; console.log(str.replace("螞蟻部落","本站"));
上面程式碼只能替換字串中的第一個"螞蟻部落",程式碼修改如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var str="螞蟻部落歡迎您,希望大家在螞蟻部落能夠獲得想要的東西"; console.log(str.replace(/螞蟻部落/g,"本站"));
採用全域性匹配可以替換掉原字串中的所有指定內容。
程式碼封裝如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var str="螞蟻部落歡迎您,希望大家在螞蟻部落能夠獲得想要的東西"; 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); } } console.log(str.replaceAll("螞蟻部落","本站",true));
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
程式碼註釋:
(1).var str="螞蟻部落歡迎您,希望大家在螞蟻部落能夠獲得想要的東西",要進行替換的字串。
(2).String.prototype.replaceAll=function(reallyDo,replaceWith,ignoreCase){},在String原型物件上新增一個方法,第一個引數可以是要被替換的字串或者是一個匹配要被替換字串的正規表示式,第二個引數規定使用哪些字串進行替換,第三個引數是一個布林值,用來規定是否忽略字元大小寫,如果是true則忽略,否則不忽略。
(3).if(!RegExp.prototype.isPrototypeOf(reallyDo)),判斷RegExp.prototype是否在引數reallyDo的原型鏈中,如果在的話,說明reallyDo是一個正規表示式 ,這段程式碼判斷第一個引數是否是一個正規表示式。
(4).return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith),如果不是正規表示式,將replace方法引數第一個引數建立一個正規表示式物件,並且根據ignoreCase引數來決定是否忽略大小寫。
(5).else{return this.replace(reallyDo, replaceWith);},如果是一個正規表示式物件,那就直接使用就可以了。
相關文章
- javascript模擬new的實現JavaScript
- JavaScript 模擬new的實現JavaScript
- JavaScript中模擬實現jsonpJavaScriptJSON
- JavaScript專題之模擬實現bindJavaScript
- javascript之模擬call以及apply實現JavaScriptAPP
- JavaScript專題之模擬實現newJavaScript
- JavaScript專題之模擬實現call和applyJavaScriptAPP
- JavaScript 深入之 call 和 apply 的模擬實現JavaScriptAPP
- 模擬 javaScript Array 原型上的方法JavaScript原型
- JavaScript模擬拋物運動的程式碼實現JavaScript
- 細節解析 JavaScript 中 bind 函式的模擬實現JavaScript函式
- promise的模擬實現Promise
- 面試官問:能否模擬實現JS的bind方法面試JS
- 如何用 3KB 不到的 JavaScript 實現微機模擬器JavaScript
- 模擬實現apply/call/bindAPP
- bind,call,apply模擬實現APP
- 【Java】——模擬登入實現Java
- PHP單例模式模擬Java Bean實現方法示例詳解PHP單例模式JavaBean
- JavaScript模擬拋物效果JavaScript
- bind/new/instanceof/assign模擬實現
- 模擬實現簡易版shell
- strlen函式的模擬實現函式
- 三維模擬模擬如何實現精益工廠佈局?
- 12.2 實現鍵盤模擬按鍵
- 12.3 實現模擬滑鼠錄製回放
- QQ模擬登入實現後篇
- qsort的模擬實現和練習
- Android模擬器繪製實現概述Android
- JavaScript 手動實現instanceof的方法JavaScript
- JavaScript實現淺拷貝的方法JavaScript
- Vue響應式原理與模擬實現Vue
- Matlab實現模擬調製與解調Matlab
- 簡單實現.NET Hook與事件模擬Hook事件
- 用一個div模擬textarea的實現
- 模擬退火演算法(1)Python 實現演算法Python
- 模擬實現字串函式strlen , strcpy ,strcmp字串函式
- 實戰模擬│單點登入 SSO 的實現
- 虛擬蜜罐:從資訊模擬到實現虛擬蜜罐技術