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模擬實現replaceAll()JavaScript
- js模擬實現replaceAll()函式程式碼例項JS函式
- javascript模擬實現trim()方法例項程式碼JavaScript
- javascript模擬實現toAarray()方法程式碼例項JavaScript
- javascript模擬new的實現JavaScript
- JavaScript 模擬new的實現JavaScript
- JavaScript中模擬實現jsonpJavaScriptJSON
- JavaScript專題之模擬實現newJavaScript
- JavaScript專題之模擬實現bindJavaScript
- javascript模擬實現函式過載JavaScript函式
- JavaScript深入之new的模擬實現JavaScript
- JavaScript深入之bind的模擬實現JavaScript
- JavaScript 深入之new的模擬實現JavaScript
- JavaScript 深入之bind的模擬實現JavaScript
- javascript之模擬call以及apply實現JavaScriptAPP
- javascript模擬實現ArrayList效果程式碼例項JavaScript
- 模擬 javaScript Array 原型上的方法JavaScript原型
- JavaScript 深入之 call 和 apply 的模擬實現JavaScriptAPP
- JavaScript模擬拋物運動的程式碼實現JavaScript
- JavaScript專題之模擬實現call和applyJavaScriptAPP
- JavaScript 之 call和apply,bind 的模擬實現JavaScriptAPP
- 原生javascript模擬實現jQuery的id選擇器JavaScriptjQuery
- javascript模擬實現私有屬性簡單介紹JavaScript
- JavaScript深入之call和apply的模擬實現JavaScriptAPP
- JavaScript 深入之call和apply的模擬實現JavaScriptAPP
- 模擬實現Object.is()方法程式碼例項Object
- javascript模擬實現滾動條效果程式碼例項JavaScript
- 細節解析 JavaScript 中 bind 函式的模擬實現JavaScript函式
- promise的模擬實現Promise
- 面試官問:能否模擬實現JS的bind方法面試JS
- js模擬實現hashCode()方法程式碼例項JS
- javascript模擬實現連結的title效果例項程式碼JavaScript
- 【Java】——模擬登入實現Java
- JavaScript 模擬 HashMap例子JavaScriptHashMap
- 如何用 3KB 不到的 JavaScript 實現微機模擬器JavaScript
- PHP單例模式模擬Java Bean實現方法示例詳解PHP單例模式JavaBean
- 模擬實現apply/call/bindAPP
- bind,call,apply模擬實現APP