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

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

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

replace()方法介紹

replace()方法執(zhí)行搜索替換操作。

它接收一個正則表達式作為第一個參數, 接收一個替換字符串作為第二個參數

它搜索調用它的字符串, 尋找與指定模式匹配的文本。

如果正則表達式帶g標志, replace()方法會替換字符串中的所有匹配項; 否則, 它只替換第一個匹配項。

如果replace()方法的第一個參數是一個字符串而非正則表達式, 這個方法會按照字面值進行搜索。

簡單用法

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

// 因為字符串是不可修改的對象所以要賦值給一個新變量, 也可以對其重新賦值
text = text.replace(/name/gi,'like'); // 標志g表示全局匹配,標志i表示不區(qū)分大小寫

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

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

let str = 'abcdeABCDE';

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

console.log(str); // abbbcccdeAbBbcCcDE

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

let str = 'abcdABCD';
str = str.replace(/(?<group1>bc)/gi,'[$<group1>]'); // 給bc套個中括號
console.log(str); // a[bc]dA[BC]D

重點:函數替換

除了給replace()的第二個參數傳替換字符串, 還可以傳一個函數, 這個函數會被調用然后用來計算替換的值, 如果匹配到多個值則會對每個值進行一次計算替換。這個替換函數在被調用時會接收幾個參數, 第一個參數是匹配的整個文本:

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

然后, 如果正則表達式有捕獲組, 則后面幾個參數分別是這些捕獲組匹配的子字符串。對以上代碼進行修改:

let str = '小明有-100元,小李有5元,小張有-10元';
// 對其中的錢進行絕對值操作
str = str.replace(/(\d+)|(-\d+)/g,function(s,first,last){ 
    // s代表匹配的整個字符串,first代表第一組為正數,last代表第二組為負數
    if(first){
        // 如果正數直接返回
        return first;
    }else{
        // 如果負數讓其乘-1
        return parseInt(last)*-1;
    }
})
console.log(str); // 小明有100元,小李有5元,小張有10元

補充:替換特殊字符

要替換特殊字符,例如 -/\\^$*+?.()|[]{}),需要使用反斜杠對其轉義。

如果給定字符串 this\\-is\\-my\\-url,要求把所有轉義的減號( \\-)替換為未轉義的減號(-)。

可以用 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

在第二個例子中不必用反斜杠來轉義反斜杠。

總結

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

相關文章

  • js拼接html字符串的注意事項

    js拼接html字符串的注意事項

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

    基于Nuxt.js項目的服務端性能優(yōu)化與錯誤檢測(容錯處理)

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

    三分鐘學會用ES7中的Async/Await進行異步編程

    這篇文章主要介紹了三分鐘學會用ES7中的Async/Await進行異步編程,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 再次談論Javascript中的this

    再次談論Javascript中的this

    javascript中的this應用非常廣泛,對js中this總是似是而非的感覺,今天小編豁然開朗,然后再次給大家談論js中的this關鍵,感興趣的朋友跟著小編一起看看吧
    2016-06-06
  • javascript正則表達式中的replace方法詳解

    javascript正則表達式中的replace方法詳解

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

    頁面載入結束自動調用js函數示例

    當頁面加載完成后自動調用預先編好的js函數,在某些特殊情況下還是比較實用的,具體實現如下,感興趣的朋友可以參考下
    2013-09-09
  • javascript異步編程

    javascript異步編程

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

    JS實現自動定時切換的簡潔網頁選項卡效果

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

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

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

    JavaScript實現廣告彈窗效果

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

最新評論

会同县| 筠连县| 保亭| 萍乡市| 大安市| 和龙市| 崇礼县| 莱阳市| 西安市| 阳东县| 体育| 梁山县| 乌兰察布市| 大洼县| 那坡县| 九龙县| 青龙| 克山县| 积石山| 松桃| 阿勒泰市| 颍上县| 黄骅市| 伊宁县| 鞍山市| 佛教| 北票市| 洞头县| 简阳市| 遂平县| 拜泉县| 东兴市| 大田县| 益阳市| 密山市| 汝阳县| 德阳市| 民权县| 伊吾县| 东阿县| 临武县|