javascript正則表達(dá)式中的replace方法詳解
前面的文章我已經(jīng)介紹了正則的四個(gè)基本方法,當(dāng)時(shí)也提到過replace方法
我們來回顧一下replace方法的使用:
先定義一個(gè)正則對(duì)象:var re=/中間寫匹配的條件/;
replace():正則匹配字符串,若是匹配成功,將匹配成功的字符串用新的字符串來替換
語(yǔ)法:字符串.replace(re,新的字符串);
舉個(gè)例子:網(wǎng)絡(luò)中經(jīng)常會(huì)遇到,不文明的詞會(huì)被*代替,我們來試一下:
<!DOCTYPE> <html> <head> <meta charset='utf-8'> <title></title> </head> <script type="text/javascript"> window.onload=function(){ var oTxtarea=document.getElementsByTagName('textarea'); var oInpt=document.getElementById('bt'); var re=/你妹|fuck|你大爺|萌萌/g; oTxtarea[0].value='我要看你妹,不行,你大爺,我要萌萌你妹,不行,你想想的太多了'; oInpt.onclick=function(){ oTxtarea[1].value=oTxtarea[0].value.replace(re,'*'); }; }; </script> <body> <textarea rows='7' cols='20'> </textarea><br /> <input id='bt' type='button' value='轉(zhuǎn)化不文明的語(yǔ)言'><br /> <textarea rows='7' cols='20'> </textarea><br /> </body> </html>
當(dāng)然了,我們對(duì)上面的轉(zhuǎn)化效果不滿意,我想要實(shí)現(xiàn)的是,轉(zhuǎn)化了幾個(gè)字就顯示幾個(gè)*號(hào)
這時(shí)候我們就需要進(jìn)行分析了,其實(shí),replace(參數(shù)1,參數(shù)2)中的參數(shù)2可以是回調(diào)函數(shù),我們對(duì)程序進(jìn)行改造一下,將第二個(gè)參數(shù)換成回調(diào)函數(shù),并且給這個(gè)回調(diào)函數(shù)傳遞一個(gè)參數(shù)
<!DOCTYPE> <html> <head> <meta charset='utf-8'> <title></title> </head> <script type="text/javascript"> window.onload=function(){ var oTxtarea=document.getElementsByTagName('textarea'); var oInpt=document.getElementById('bt'); var re=/你妹|fuck|你大爺|萌萌/g; oTxtarea[0].value='我要看你妹,不行,你大爺,我要萌萌你妹,不行,你想想的太多了'; oInpt.onclick=function(){ oTxtarea[1].value=oTxtarea[0].value.replace(re,function(obj){ alert(obj); /*alert(obj.length);*/ }); }; }; </script> <body> <textarea rows='7' cols='20'> </textarea><br /> <input id='bt' type='button' value='轉(zhuǎn)化不文明的語(yǔ)言'><br /> <textarea rows='7' cols='20'> </textarea><br /> </body> </html>
可以看出上面的結(jié)果很奇怪,第二個(gè)參數(shù)是回調(diào)函數(shù),但是顯示回調(diào)函數(shù)中的參數(shù)時(shí),卻都是成功匹配到的字符串
那么我們就可以針對(duì)這個(gè)參數(shù)中的每個(gè)結(jié)果做處理,幾個(gè)字就產(chǎn)生幾個(gè)*號(hào)
<!DOCTYPE> <html> <head> <meta charset='utf-8'> <title></title> </head> <script type="text/javascript"> window.onload=function(){ var oTxtarea=document.getElementsByTagName('textarea'); var oInpt=document.getElementById('bt'); var re=/你妹|fuck|你大爺|萌萌/g; oTxtarea[0].value='我要看你妹,不行,你大爺,我要萌萌你妹,不行,你想想的太多了'; oInpt.onclick=function(){ oTxtarea[1].value=oTxtarea[0].value.replace(re,function(obj){ var a=''; for (var i = 0; i < obj.length; i++) { a+='*'; } return a; }); }; }; </script> <body> <textarea rows='7' cols='20'> </textarea><br /> <input id='bt' type='button' value='轉(zhuǎn)化不文明的語(yǔ)言'><br /> <textarea rows='7' cols='20'> </textarea><br /> </body> </html>
通過上面的例子,是不是又對(duì)replace方法了解加深了一步。。。。。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
javascript實(shí)現(xiàn)根據(jù)身份證號(hào)讀取相關(guān)信息
這篇文章主要介紹了javascript實(shí)現(xiàn)根據(jù)身份證號(hào)讀取相關(guān)信息,需要的朋友可以參考下2014-12-12Javascript中查找不以XX字符結(jié)尾的單詞示例代碼
我在寫這篇文章之前花了2個(gè)多小時(shí)在弄正則表達(dá)式,下為大家介紹下具體的實(shí)現(xiàn)思路,感興趣的朋友可以參考下2013-10-10JS簡(jiǎn)單編號(hào)生成器實(shí)現(xiàn)方法(附demo源碼下載)
這篇文章主要介紹了JS簡(jiǎn)單編號(hào)生成器實(shí)現(xiàn)方法,涉及JavaScript針對(duì)表單與字符串操作的相關(guān)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-04-04javascript實(shí)現(xiàn)獲取一個(gè)日期段內(nèi)每天不同的價(jià)格(計(jì)算入住總價(jià)格)
這篇文章主要介紹了javascript實(shí)現(xiàn)獲取一個(gè)日期段內(nèi)每天不同的價(jià)格(計(jì)算入住總價(jià)格)的相關(guān)資料,需要的朋友可以參考下2018-02-02一個(gè)JavaScript操作元素定位元素的實(shí)例
操作元素定位元素,大家會(huì)想到使用js來實(shí)現(xiàn),下面有個(gè)不錯(cuò)的示例,大家可以看看2014-10-10javascript與Python快速排序?qū)嵗龑?duì)比
這篇文章主要介紹了javascript與Python快速排序?qū)嵗龑?duì)比,實(shí)例講述了javascript與Python實(shí)現(xiàn)快速排序的簡(jiǎn)單實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08