下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第JS正則表達(dá)式替換字符串replace()方法實(shí)例代碼目錄replace()方法介紹簡(jiǎn)單用法重點(diǎn):函數(shù)替換補(bǔ)充:替換特殊字符總結(jié)
replace()方法介紹
replace()方法執(zhí)行搜索替換操作。
它接收一個(gè)正則表達(dá)式作為第一個(gè)參數(shù),接收一個(gè)替換字符串作為第二個(gè)參數(shù)。
它搜索調(diào)用它的字符串,尋找與指定模式匹配的文本。
如果正則表達(dá)式帶g標(biāo)志,replace()方法會(huì)替換字符串中的所有匹配項(xiàng);否則,它只替換第一個(gè)匹配項(xiàng)。
如果replace()方法的第一個(gè)參數(shù)是一個(gè)字符串而非正則表達(dá)式,這個(gè)方法會(huì)按照字面值進(jìn)行搜索。
簡(jiǎn)單用法
lettext='mynameishu,youNAMEiszhang';
//因?yàn)樽址遣豢尚薷牡膶?duì)象所以要賦值給一個(gè)新變量,也可以對(duì)其重新賦值
text=text.replace(/name/gi,'like');//標(biāo)志g表示全局匹配,標(biāo)志i表示不區(qū)分大小寫
console.log(text);//mylikeishu,youlikeiszhang
不過(guò)replace()方法的能力遠(yuǎn)不止這些。比如在正則表達(dá)式中用括號(hào)()分組的子表達(dá)式是從左到右編號(hào)的,而且正則表達(dá)式能記住每個(gè)子表達(dá)式匹配的文本。如果替換字符串中出現(xiàn)了$符號(hào)后面跟一個(gè)數(shù)字(例如$1代表第一組子表達(dá)式),replace()會(huì)將這兩個(gè)字符替換為指定的子表達(dá)式匹配的文本。
letstr='abcdeABCDE';
//其中$1代表第一組(b),$2代表第二組(c)
str=str.replace(/(b)(c)/gi,'b$1bc$2c');//給b兩邊來(lái)個(gè)b,給c兩邊來(lái)個(gè)c
console.log(str);//abbbcccdeAbBbcCcDE
如果正則表達(dá)式中使用的是命名捕獲組,則可以通過(guò)名字而非數(shù)字來(lái)引用匹配的文本,如果使用命名捕獲組就要把名字寫到$名字中:
letstr='abcdABCD';
str=str.replace(/(group1bc)/gi,'[$group1//給bc套個(gè)中括號(hào)
console.log(str);//a[bc]dA[BC]D
重點(diǎn):函數(shù)替換
除了給replace()的第二個(gè)參數(shù)傳替換字符串,還可以傳一個(gè)函數(shù),這個(gè)函數(shù)會(huì)被調(diào)用然后用來(lái)計(jì)算替換的值,如果匹配到多個(gè)值則會(huì)對(duì)每個(gè)值進(jìn)行一次計(jì)算替換。這個(gè)替換函數(shù)在被調(diào)用時(shí)會(huì)接收幾個(gè)參數(shù),第一個(gè)參數(shù)是匹配的整個(gè)文本:
letstr='小明有-100元,小李有5元,小張有-10元';
//對(duì)其中的錢進(jìn)行絕對(duì)值操作
str=str.replace(/-\d+/g,function(s){
letnum=parseInt(s);
if(num0){
//如果小于0就讓它乘-1
num*=-1;
//返回結(jié)果對(duì)其進(jìn)行替換
returnnum;
console.log(str);//小明有100元,小李有5元,小張有10元
然后,如果正則表達(dá)式有捕獲組,則后面幾個(gè)參數(shù)分別是這些捕獲組匹配的子字符串。對(duì)以上代碼進(jìn)行修改:
letstr='小明有-100元,小李有5元,小張有-10元';
//對(duì)其中的錢進(jìn)行絕對(duì)值操作
str=str.replace(/(\d+)|(-\d+)/g,function(s,first,last){
//s代表匹配的整個(gè)字符串,first代表第一組為正數(shù),last代表第二組為負(fù)數(shù)
if(first){
//如果正數(shù)直接返回
returnfirst;
}else{
//如果負(fù)數(shù)讓其乘-1
returnparseInt(last)*-1;
console.log(str);//小明有100元,小李有5元,小張有10元
補(bǔ)充:替換特殊字符
要替換特殊字符,例如-/\\^$*+.()|[]{}),需要使用反斜杠對(duì)其轉(zhuǎn)義。
如果給定字符串this\\-is\\-my\\-url,要求把所有轉(zhuǎn)義的減號(hào)(\\-)替換為未轉(zhuǎn)義的減號(hào)(-)。
可以用replace()做到:
constmyUrl='this\-is\-my\-url';
constnewUrl=myMessage.replace(/\\-/g,'-');
console.log(newUrl);//this-is-my-url
或者用newRegexp():
constmyUrl='this\-is\-my\-url';
constnewUrl=myUrl.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 32350.1-2025軌道交通絕緣配合第1部分:基本要求電工電子設(shè)備的電氣間隙和爬電距離
- 工作站財(cái)務(wù)制度
- 烘焙店店面衛(wèi)生管理制度
- 機(jī)械廠金工車間衛(wèi)生制度
- 管供水人員衛(wèi)生培訓(xùn)制度
- 廠房?jī)?nèi)清理衛(wèi)生管理制度
- 單位文明衛(wèi)生制度匯編
- 大型活動(dòng)財(cái)務(wù)制度
- 連鎖運(yùn)營(yíng)督導(dǎo)制度
- 快遞衛(wèi)生管理制度
- 統(tǒng)編版語(yǔ)文四年級(jí)下冊(cè)全冊(cè)教案(2025年2月修訂)
- GB 11174-2025液化石油氣
- 肝素鈉工藝流程
- 熱工儀表工試題全集
- 2025-2030老年婚戀市場(chǎng)需求分析與服務(wù)平臺(tái)優(yōu)化方向
- 《JJG 875-2019數(shù)字壓力計(jì)》解讀
- 急性發(fā)熱課件
- 疼痛科醫(yī)師進(jìn)修總結(jié)匯報(bào)
- 舞蹈癥鑒別診斷課件
- 非法營(yíng)運(yùn)執(zhí)法培訓(xùn)課件
- 門診主任述職報(bào)告課件
評(píng)論
0/150
提交評(píng)論