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

JS關(guān)于?replace?取值、替換第幾個(gè)匹配項(xiàng)問題小結(jié)

 更新時(shí)間:2023年05月24日 09:12:31   作者:橙子家  
這篇文章主要介紹了JS關(guān)于replace取值、替換第幾個(gè)匹配項(xiàng),本文針對(duì)字符串的替換、截取知識(shí)點(diǎn)做詳細(xì)介紹,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

在日常開發(fā)中,經(jīng)常遇到針對(duì)字符串的替換、截取,知識(shí)點(diǎn)比較碎容易混淆,特此總結(jié)一下,僅供參考。

一、替換第一個(gè)匹配項(xiàng)

字符串替換

let strtest = "0123測(cè)試replace456測(cè)試replace789測(cè)試replace0"
console.log("原字符串:" + strtest)
let outstr = strtest.replace("測(cè)試","ceshi")
console.log("輸出字符串:" + outstr)
// 原字符串:0123測(cè)試replace456測(cè)試replace789測(cè)試replace0
// 輸出字符串:0123ceshireplace456測(cè)試replace789測(cè)試replace0

正則表達(dá)式替換

當(dāng)直接在被替換字符串恰后加上 / 時(shí),不添加修飾符,就等同于直接字符串替換。

let strtest = "0123測(cè)試replace456測(cè)試replace789測(cè)試replace0"
console.log("原字符串:" + strtest)
let outstr = strtest.replace(/測(cè)試/, "ceshi")
console.log("輸出字符串:" + outstr)
// 原字符串:0123測(cè)試replace456測(cè)試replace789測(cè)試replace0
// 輸出字符串:0123ceshireplace456測(cè)試replace789測(cè)試replace0

二、替換全部匹配項(xiàng)

字符串分組再聯(lián)合

let strtest = '0123測(cè)試replace456測(cè)試replace789測(cè)試replace0';
console.log("原字符串:" + strtest)
let arrstr = strtest.split("測(cè)試");
let outstr = arrstr.join("ceshi");
console.log("輸出字符串:" + outstr)
// 原字符串:0123測(cè)試replace456測(cè)試replace789測(cè)試replace0
// 輸出字符串:0123ceshireplace456ceshireplace789ceshireplace0

正則表達(dá)式替換

格式:/待替換的字符串/g、/待替換的字符串/mgi。

  g:執(zhí)行全局匹配,替換全部匹配項(xiàng);

  i:不區(qū)分大小寫;

  m:多行匹配。

gim 可所以組合使用。

let strtest = "0123測(cè)試replace456測(cè)試replace789測(cè)試replace0"
console.log("原字符串:" + strtest)
let outstr = strtest.replace(/測(cè)試/g, "ceshi")
// 另一種寫法:
// let reg = new RegExp("測(cè)試", "g")
// let outstr = strtest.replace(reg, "ceshi")
console.log("輸出字符串:" + outstr)
// 原字符串:0123測(cè)試replace456測(cè)試replace789測(cè)試replace0
// 輸出字符串:0123ceshireplace456ceshireplace789ceshireplace0

三、替換第 n 個(gè)匹配項(xiàng)

下邊以第二個(gè)為例。

字符串分組再聯(lián)合

思路:先通過被替換項(xiàng)分組,再根據(jù)目標(biāo)位數(shù)把整個(gè)分組分為兩個(gè)部分,在通過替換字符串聯(lián)合。

let num = 2 // 定義替換第二個(gè)匹配項(xiàng)
let strtest = '0123測(cè)試replace456測(cè)試replace789測(cè)試replace0';
console.log("原字符串:" + strtest)
let arrstr = strtest.split("測(cè)試");
if(arrstr.length < num)
    return
let arrstr1=[],arrstr2=[]
for(let ii=0;ii<arrstr.length;ii++){
    if(ii < num)
        arrstr1.push(arrstr[ii])
    else
        arrstr2.push(arrstr[ii])
}
let outstr = arrstr1.join("測(cè)試")+"ceshi"+arrstr2.join("測(cè)試");
console.log("輸出字符串:" + outstr)
// 原字符串:0123測(cè)試replace456測(cè)試replace789測(cè)試replace0
// (index):59 輸出字符串:0123測(cè)試replace456ceshireplace789測(cè)試replace0

正則表達(dá)式實(shí)現(xiàn)

將第一個(gè)匹配項(xiàng)跳過,并把第二個(gè)匹配項(xiàng)之前的內(nèi)容標(biāo)識(shí)為變量。

let strtest = '0123測(cè)試replace456測(cè)試replace789測(cè)試replace0';
console.log("原字符串:" + strtest)
let outstr = strtest.replace(/((?:.*?測(cè)試.*?){1}.*?)測(cè)試/m, "$1-ceshi-")
// ?: 表示:其后邊的 pattern 匹配但不獲取。匹配項(xiàng)被標(biāo)識(shí)為 $1,后續(xù)會(huì)引用
// .*? 表示:.* 除 '/n' 之外的任意個(gè)任意字符
// {1} 表示:其前邊的 pattern 出現(xiàn)一次
// /pattern/m 表示: m 全局查詢
console.log("輸出字符串:" + outstr)
// 原字符串:0123測(cè)試replace456測(cè)試replace789測(cè)試replace0
// 輸出字符串:0123測(cè)試replace456測(cè)試replace789-ceshi-replace0

參考:https://stackoverflow.com/questions/42943096/replace-nth-match-of-matches-with-regex

四、替換指定標(biāo)記之間的內(nèi)容

字符串分組再聯(lián)合

let strtest = '0123<Object>replace456測(cè)試replace78</Object>9測(cè)試replace0';
let startstr = "<Object>"
let endstr = "</Object>"
if (strtest.indexOf(startstr) > strtest.indexOf(endstr))
    return
console.log("原字符串:" + strtest)
let arr = strtest.split(startstr)
let arr2 = arr[1].split(endstr)
let resultstr = arr2[0]
let outstr = startstr + resultstr + endstr
console.log("輸出字符串:" + outstr)
// 原字符串:0123<Object>replace456測(cè)試replace78</Object>9測(cè)試replace0
// 輸出字符串:<Object>replace456測(cè)試replace78</Object>
let strtest = '0123<Object>replace456測(cè)試replace78</Object>9測(cè)試replace0';
let startstr = "<Object>"
let endstr = "</Object>"
if (strtest.indexOf(startstr) > strtest.indexOf(endstr))
    return
console.log("原字符串:" + strtest)
let arr = strtest.split(startstr)
let arr2 = arr[1].split(endstr)
let resultstr = arr2[0]
let outstr = startstr + resultstr + endstr
console.log("輸出字符串:" + outstr)
// 原字符串:0123<Object>replace456測(cè)試replace78</Object>9測(cè)試replace0
// 輸出字符串:<Object>replace456測(cè)試replace78</Object>

正則表達(dá)式方法 replace()、match()、exec()

替換為指定字符串:( replace() )

let strtest = '0123<Object>replace456測(cè)試replace78</Object>9測(cè)試replace0';
console.log("原字符串:" + strtest)
let outstr = strtest.replace(/<Object>(.*?)<\/Object>/m, "-ceshi-") // \ 為轉(zhuǎn)義字符
console.log("輸出字符串:" + outstr)
// 原字符串:0123<Object>replace456測(cè)試replace78</Object>9測(cè)試replace0
// 輸出字符串:0123-ceshi-9測(cè)試replace0

取出帶標(biāo)記字符串的內(nèi)容:( match() )

let strtest = '0123<Object>replace456測(cè)試replace78</Object>9測(cè)試replace0';
console.log("原字符串:" + strtest)
let outstr = strtest.match(/<Object>(.*?)<\/Object>/m)
console.log("輸出字符串:" + outstr)
// 原字符串:0123<Object>replace456測(cè)試replace78</Object>9測(cè)試replace0
// 輸出字符串:<Object>replace456測(cè)試replace78</Object>

當(dāng)可能有多個(gè)匹配項(xiàng)時(shí):( exec() )

let strtest = "這是<Object>要提取的內(nèi)容</Object>,還有<Object>另一個(gè)內(nèi)容</Object>"
console.log("原字符串:" + strtest)
let regex = /<Object>(.*?)<\/Object>/gm
const matches = []
let match
while ((match = regex.exec(strtest)) !== null) {
    matches.push(match[1])
    console.log(match)
}
console.log("輸出全部匹配項(xiàng):", matches)
// 原字符串:這是<Object>要提取的內(nèi)容</Object>,還有<Object>另一個(gè)內(nèi)容</Object>
// (2)?["<Object>要提取的內(nèi)容</Object>", "要提取的內(nèi)容", index: 2, input: "這是<Object>要提取的內(nèi)容</Object>,還有<Object>另一個(gè)內(nèi)容</Object>", groups: undefined]
// (2)?["<Object>另一個(gè)內(nèi)容</Object>", "另一個(gè)內(nèi)容", index: 28, input: "這是<Object>要提取的內(nèi)容</Object>,還有<Object>另一個(gè)內(nèi)容</Object>", groups: undefined]
// 輸出全部匹配項(xiàng): (2)?["要提取的內(nèi)容", "另一個(gè)內(nèi)容"]

到此這篇關(guān)于JS關(guān)于 replace 取值、替換第幾個(gè)匹配項(xiàng)的文章就介紹到這了,更多相關(guān)js replace 取值、替換第幾個(gè)匹配項(xiàng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • javascript實(shí)現(xiàn)避免頁面按鈕重復(fù)提交

    javascript實(shí)現(xiàn)避免頁面按鈕重復(fù)提交

    很多時(shí)候我們都需要防止重復(fù)提交,這方面的文章也比較多,實(shí)現(xiàn)的途徑差別也很大.因?yàn)橛行r(shí)候即使服務(wù)器能夠識(shí)別重復(fù)的提交,也會(huì)造成問題.比如需要很長(zhǎng)等待時(shí)間的操作,在首次提交后,不斷重復(fù)提交,頁面可能會(huì)死掉.用腳本來控制的話可以防止這種問題.
    2015-01-01
  • 關(guān)于better-scroll插件的無法滑動(dòng)bug(2021通過插件解決)

    關(guān)于better-scroll插件的無法滑動(dòng)bug(2021通過插件解決)

    這篇文章主要介紹了關(guān)于better-scroll插件的無法滑動(dòng)bug(2021通過插件解決),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • js中怎么判斷兩個(gè)字符串相等的實(shí)例

    js中怎么判斷兩個(gè)字符串相等的實(shí)例

    在本篇文章里小編給大家分享了關(guān)于js中怎么判斷兩個(gè)字符串相等的實(shí)例和代碼,需要的朋友們學(xué)習(xí)參考下。
    2019-01-01
  • ajaxFileUpload.js插件支持多文件上傳的方法

    ajaxFileUpload.js插件支持多文件上傳的方法

    這篇文章主要介紹了ajaxFileUpload.js插件支持多文件上傳的方法,需要的朋友可以參考下
    2014-09-09
  • JS實(shí)現(xiàn)網(wǎng)頁截圖的三種方式對(duì)比

    JS實(shí)現(xiàn)網(wǎng)頁截圖的三種方式對(duì)比

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)網(wǎng)頁截圖的三種方式并進(jìn)行對(duì)比,即html2canvas,snapdom和html-to-image,下面小編就來和大家詳細(xì)介紹一下吧
    2025-08-08
  • ES6 Promise.race的用法詳解

    ES6 Promise.race的用法詳解

    本文主要介紹了ES6 Promise.race的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • 微信小程序?qū)崿F(xiàn)裁剪圖片大小

    微信小程序?qū)崿F(xiàn)裁剪圖片大小

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)裁剪圖片大小,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • js代碼實(shí)現(xiàn)輪播圖

    js代碼實(shí)現(xiàn)輪播圖

    這篇文章主要為大家詳細(xì)介紹了js代碼實(shí)現(xiàn)輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • 基于JavaScript實(shí)現(xiàn)百度搜索框效果

    基于JavaScript實(shí)現(xiàn)百度搜索框效果

    這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)百度搜索框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • JS實(shí)現(xiàn)自動(dòng)切換文字的導(dǎo)航效果代碼

    JS實(shí)現(xiàn)自動(dòng)切換文字的導(dǎo)航效果代碼

    這篇文章主要介紹了JS實(shí)現(xiàn)自動(dòng)切換文字的導(dǎo)航效果代碼,涉及javascript動(dòng)態(tài)切換頁面樣式的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08

最新評(píng)論

博兴县| 麻江县| 乌苏市| 清涧县| 庆元县| 谷城县| 大英县| 夹江县| 和田市| 威宁| 犍为县| 剑河县| 攀枝花市| 修文县| 光山县| 永昌县| 阳东县| 邓州市| 徐汇区| 银川市| 伊金霍洛旗| 巴彦县| 万宁市| 张掖市| 兰坪| 陇南市| 南郑县| 屯留县| 军事| 贵南县| 金秀| 南漳县| 大安市| 永丰县| 额尔古纳市| 霍林郭勒市| 湟中县| 开封县| 枣庄市| 新泰市| 娄底市|