最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS正則表達(dá)式替換字符串replace()方法實(shí)例代碼

 更新時(shí)間:2023年04月05日 09:02:22   作者:Python454  
正則表達(dá)式是用于匹配字符串中字符組合的模式,在js中正則表達(dá)式是對(duì)象,這篇文章主要給大家介紹了關(guān)于JS正則表達(dá)式替換字符串replace()方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

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)行搜索。

簡單用法

let text = 'my name is hu,you NAME is zhang';

// 因?yàn)樽址遣豢尚薷牡膶?duì)象所以要賦值給一個(gè)新變量, 也可以對(duì)其重新賦值
text = text.replace(/name/gi,'like'); // 標(biāo)志g表示全局匹配,標(biāo)志i表示不區(qū)分大小寫

console.log(text); // my like is hu,you like is zhang

不過replace()方法的能力遠(yuǎn)不止這些。比如在正則表達(dá)式中用括號(hào)()分組的子表達(dá)式是從左到右編號(hào)的, 而且正則表達(dá)式能記住每個(gè)子表達(dá)式匹配的文本。如果替換字符串中出現(xiàn)了$符號(hào)后面跟一個(gè)數(shù)字(例如$1代表第一組子表達(dá)式), replace()會(huì)將這兩個(gè)字符替換為指定的子表達(dá)式匹配的文本。

let str = 'abcdeABCDE';

// 其中$1代表第一組(b),$2代表第二組(c)
str = str.replace(/(b)(c)/gi,'b$1bc$2c');  // 給b兩邊來個(gè)b,給c兩邊來個(gè)c

console.log(str); // abbbcccdeAbBbcCcDE

如果正則表達(dá)式中使用的是命名捕獲組, 則可以通過名字而非數(shù)字來引用匹配的文本, 如果使用命名捕獲組就要把名字寫到$<名字>中:

let str = 'abcdABCD';
str = str.replace(/(?<group1>bc)/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)用然后用來計(jì)算替換的值, 如果匹配到多個(gè)值則會(huì)對(duì)每個(gè)值進(jìn)行一次計(jì)算替換。這個(gè)替換函數(shù)在被調(diào)用時(shí)會(huì)接收幾個(gè)參數(shù), 第一個(gè)參數(shù)是匹配的整個(gè)文本:

let str = '小明有-100元,小李有5元,小張有-10元';
// 對(duì)其中的錢進(jìn)行絕對(duì)值操作
str = str.replace(/-?\d+/g,function(s){
    let num = parseInt(s);
    if(num < 0){
        // 如果小于0就讓它乘-1
        num *= -1; 
    }
    // 返回結(jié)果對(duì)其進(jìn)行替換
    return num;
})
console.log(str); // 小明有100元,小李有5元,小張有10元

然后, 如果正則表達(dá)式有捕獲組, 則后面幾個(gè)參數(shù)分別是這些捕獲組匹配的子字符串。對(duì)以上代碼進(jìn)行修改:

let str = '小明有-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ù)直接返回
        return first;
    }else{
        // 如果負(fù)數(shù)讓其乘-1
        return parseInt(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() 做到:

const myUrl = 'this\-is\-my\-url';
const newUrl = myMessage.replace(/\\-/g, '-');
console.log(newUrl); // this-is-my-url

或者用new Regexp():

const myUrl = 'this\-is\-my\-url';
const newUrl = myUrl.replace(new RegExp('\-', 'g'), '-');
console.log(newUrl); // this-is-my-url

在第二個(gè)例子中不必用反斜杠來轉(zhuǎn)義反斜杠。

總結(jié)

到此這篇關(guān)于JS正則表達(dá)式替換字符串replace()方法的文章就介紹到這了,更多相關(guān)JS正則替換字符串replace()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js拼接html字符串的注意事項(xiàng)

    js拼接html字符串的注意事項(xiàng)

    下面小編就為大家?guī)硪黄猨s拼接html字符串的注意事項(xiàng)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-10-10
  • 基于Nuxt.js項(xiàng)目的服務(wù)端性能優(yōu)化與錯(cuò)誤檢測(cè)(容錯(cuò)處理)

    基于Nuxt.js項(xiàng)目的服務(wù)端性能優(yōu)化與錯(cuò)誤檢測(cè)(容錯(cuò)處理)

    這篇文章主要介紹了基于Nuxt.js項(xiàng)目的服務(wù)端性能優(yōu)化與錯(cuò)誤檢測(cè)(容錯(cuò)處理),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 三分鐘學(xué)會(huì)用ES7中的Async/Await進(jìn)行異步編程

    三分鐘學(xué)會(huì)用ES7中的Async/Await進(jìn)行異步編程

    這篇文章主要介紹了三分鐘學(xué)會(huì)用ES7中的Async/Await進(jìn)行異步編程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • 再次談?wù)揓avascript中的this

    再次談?wù)揓avascript中的this

    javascript中的this應(yīng)用非常廣泛,對(duì)js中this總是似是而非的感覺,今天小編豁然開朗,然后再次給大家談?wù)搄s中的this關(guān)鍵,感興趣的朋友跟著小編一起看看吧
    2016-06-06
  • javascript正則表達(dá)式中的replace方法詳解

    javascript正則表達(dá)式中的replace方法詳解

    replace方法的語法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正則表達(dá)式對(duì)象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串。。
    2015-04-04
  • 頁面載入結(jié)束自動(dòng)調(diào)用js函數(shù)示例

    頁面載入結(jié)束自動(dòng)調(diào)用js函數(shù)示例

    當(dāng)頁面加載完成后自動(dòng)調(diào)用預(yù)先編好的js函數(shù),在某些特殊情況下還是比較實(shí)用的,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下
    2013-09-09
  • javascript異步編程

    javascript異步編程

    如果編程加入了時(shí)間的概念就一切變得非常復(fù)雜。通常我們的程序是飛快地解析執(zhí)行,一毫秒緊接著一毫秒,從上至下地執(zhí)行,這稱之為同步。但如果我們想讓后臺(tái)的程序不等前面的程序執(zhí)行,就執(zhí)行呢,于是就有了異步的概念。
    2010-06-06
  • JS實(shí)現(xiàn)自動(dòng)定時(shí)切換的簡潔網(wǎng)頁選項(xiàng)卡效果

    JS實(shí)現(xiàn)自動(dòng)定時(shí)切換的簡潔網(wǎng)頁選項(xiàng)卡效果

    這篇文章主要介紹了JS實(shí)現(xiàn)自動(dòng)定時(shí)切換的簡潔網(wǎng)頁選項(xiàng)卡效果,涉及JavaScript基于時(shí)間函數(shù)定時(shí)觸發(fā)遍歷函數(shù)實(shí)現(xiàn)定時(shí)切換功能,需要的朋友可以參考下
    2015-10-10
  • 20條學(xué)習(xí)javascript的編程規(guī)范的建議

    20條學(xué)習(xí)javascript的編程規(guī)范的建議

    本文總結(jié)了20條javascript的編程規(guī)范,都是平時(shí)項(xiàng)目中使用的時(shí)候需要注意的地方,這里推薦給大家,如對(duì)大家有所幫助,那便是極好的了。
    2014-11-11
  • JavaScript實(shí)現(xiàn)廣告彈窗效果

    JavaScript實(shí)現(xiàn)廣告彈窗效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)廣告彈窗效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評(píng)論

木里| 福州市| 托里县| 芜湖市| 武平县| 鄂温| 古蔺县| 泰顺县| 安康市| 陆河县| 潮安县| 溧阳市| 邹城市| 无锡市| 平遥县| 土默特右旗| 镇沅| 稷山县| 海阳市| 南靖县| 武陟县| 长汀县| 化德县| 玛多县| 如皋市| 明星| 唐山市| 师宗县| 沂南县| 诸城市| 迁西县| 永城市| 灵台县| 龙泉市| 百色市| 德江县| 罗田县| 景宁| 湘阴县| 乐都县| 渭南市|