js使用Replace結(jié)合正則替換重復(fù)出現(xiàn)的字符串功能示例
本文實(shí)例講述了js使用Replace結(jié)合正則替換重復(fù)出現(xiàn)的字符串功能。分享給大家供大家參考,具體如下:
今天想把網(wǎng)站上關(guān)于用戶搜索資料后的結(jié)果列表進(jìn)行處理,如同百度搜索一樣,加入我搜索框中輸入“我要日日發(fā)網(wǎng)絡(luò)”,點(diǎn)擊搜索按鈕所得的結(jié)果列表中將會出現(xiàn)“我要日日發(fā)網(wǎng)絡(luò)”字符串為紅色。
我今天想到用js來進(jìn)行處理,就是利用js內(nèi)的replace函數(shù)對結(jié)果列表內(nèi)的字符串進(jìn)行指定字符串的替換工作,開始我是這樣寫的
<script type="text/JavaScript" language="javascript"> <!-- function ReplaceStr(str) { var content = document.getElementById("content").innerHTML; content = content.replace(str, "<font color='red'>" + str + "</font>"); document.getElementById("content").innerHTML = content; } ReplaceStr("日日發(fā)"); // --> </script>
最后運(yùn)行頁面發(fā)現(xiàn)只替換掉了第一個(gè)“日日發(fā)”字符串,其他“日日發(fā)”字符串沒有被替換掉,開始百思不得其解,后來在朋友的幫助下了解到j(luò)s內(nèi)的replace和c#內(nèi)的replace有很大的不同,js內(nèi)的replace默認(rèn)的只是對字符串進(jìn)行一次掃描。那么利用js的replace函數(shù)如何才能夠達(dá)到字符串全部替換的效果呢? 這里我們就必須引入正則式了的,修改后的js函數(shù)如下所示:
<script type="text/javascript" language="javascript"> <!-- function ReplaceStr(str) { var content = document.getElementById("content").innerHTML; content = content.replace(new RegExp(str,"gi"), "<font color='red'>" + str + "</font>"); document.getElementById("content").innerHTML = content; } ReplaceStr("日日發(fā)"); // --> </script>
這兩者一比較就很清楚問題出在哪里了的,利用正則式很輕松地解決了問題,在這里 new RegExp(str,"gi") 這句話是什么意思呢?
后來查閱了一些資料,g - 從頭至尾掃描完一次整個(gè)字符串,i- 不區(qū)分替換字符串的大小寫。那么整個(gè)語句的意思就好理解了的。
PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:
JavaScript正則表達(dá)式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript正則表達(dá)式技巧大全》、《JavaScript替換操作技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript中json操作技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
Javascript中使用A標(biāo)簽獲取當(dāng)前目錄的絕對路徑方法
這篇文章主要介紹了Javascript中使用A標(biāo)簽獲取當(dāng)前目錄的絕對路徑方法,本文講解的方法比較特別,需要的朋友可以參考下2015-03-03網(wǎng)頁前端登錄js按Enter回車鍵實(shí)現(xiàn)登陸的兩種方法
下面小編就為大家?guī)硪黄W(wǎng)頁前端登錄js按Enter回車鍵實(shí)現(xiàn)登陸的兩種方法。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考2016-05-05js插件YprogressBar實(shí)現(xiàn)漂亮的進(jìn)度條效果
ProgressBar.js 是一個(gè)借助動態(tài) SVG 路徑的漂亮的,響應(yīng)式的進(jìn)度條效果。使用 ProgressBar.js 可以很容易地創(chuàng)建任意形狀的進(jìn)度條。這個(gè) JavaScript 庫提供線條,圓形和方形等幾個(gè)內(nèi)置的形狀,但你可使用 Illustrator 或任何其它的矢量圖形編輯器創(chuàng)建自己的進(jìn)度條效果。2015-04-04Javascript獲取數(shù)組中的最大值和最小值的方法匯總
比較數(shù)組中數(shù)值的大小是比較常見的操作,下面同本文給大家分享四種放哪廣發(fā)獲取數(shù)組中最大值和最小值,對此感興趣的朋友一起學(xué)習(xí)吧2016-01-01如何用threejs實(shí)現(xiàn)實(shí)時(shí)多邊形折射
這篇文章主要介紹了如何用threejs實(shí)現(xiàn)實(shí)時(shí)多邊形折射,對three.js庫感興趣的同學(xué),可以參考下2021-05-05JavaScript實(shí)現(xiàn)鼠標(biāo)懸浮頁面切換效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)鼠標(biāo)懸浮頁面切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03JavaScript簡單遍歷DOM對象所有屬性的實(shí)現(xiàn)方法
這篇文章主要介紹了JavaScript簡單遍歷DOM對象所有屬性的實(shí)現(xiàn)方法,涉及JavaScript針對頁面元素屬性操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10JavaScript canvas動畫實(shí)現(xiàn)時(shí)鐘效果
這篇文章主要為大家詳細(xì)介紹了JavaScript canvas動畫實(shí)現(xiàn)時(shí)鐘效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02