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

JavaScript中關(guān)于字符串替換與截取的知識點匯總

 更新時間:2023年05月23日 10:41:44   作者:橙子家  
在日常開發(fā)中,經(jīng)常遇到針對字符串的替換、截取,知識點比較碎容易混淆,所以本文為大家整理了一下相關(guān)的知識點,希望對大家有所幫助

〇、前言

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

一、替換第一個匹配項

字符串替換

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

正則表達(dá)式替換

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

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

二、替換全部匹配項

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

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

正則表達(dá)式替換

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

  • g:執(zhí)行全局匹配,替換全部匹配項;
  • i:不區(qū)分大小寫;
  • m:多行匹配。

gim 可所以組合使用。

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

三、替換第 n 個匹配項

下邊以第二個為例。

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

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

let num = 2 // 定義替換第二個匹配項
let strtest = '0123測試replace456測試replace789測試replace0';
console.log("原字符串:" + strtest)
let arrstr = strtest.split("測試");
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("測試")+"ceshi"+arrstr2.join("測試");
console.log("輸出字符串:" + outstr)
// 原字符串:0123測試replace456測試replace789測試replace0
// (index):59 輸出字符串:0123測試replace456ceshireplace789測試replace0

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

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

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

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

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

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

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

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

當(dāng)可能有多個匹配項時:( exec() )

let strtest = "這是<Object>要提取的內(nèi)容</Object>,還有<Object>另一個內(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("輸出全部匹配項:", matches)
// 原字符串:這是<Object>要提取的內(nèi)容</Object>,還有<Object>另一個內(nèi)容</Object>
// (2) ["<Object>要提取的內(nèi)容</Object>", "要提取的內(nèi)容", index: 2, input: "這是<Object>要提取的內(nèi)容</Object>,還有<Object>另一個內(nèi)容</Object>", groups: undefined]
// (2) ["<Object>另一個內(nèi)容</Object>", "另一個內(nèi)容", index: 28, input: "這是<Object>要提取的內(nèi)容</Object>,還有<Object>另一個內(nèi)容</Object>", groups: undefined]
// 輸出全部匹配項: (2) ["要提取的內(nèi)容", "另一個內(nèi)容"]

以上就是JavaScript中關(guān)于字符串替換與截取的知識點匯總的詳細(xì)內(nèi)容,更多關(guān)于JavaScript字符串替換截取的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JavaScript實現(xiàn)數(shù)據(jù)可視化圖表的示例代碼

    JavaScript實現(xiàn)數(shù)據(jù)可視化圖表的示例代碼

    這篇文章主要介紹了如何使用JavaScript創(chuàng)建實時數(shù)據(jù)可視化圖表,我們將使用流行的圖表庫,如Chart.js,來展示如何將實時數(shù)據(jù)動態(tài)呈現(xiàn)在圖表中,感興趣的可以了解下
    2024-01-01
  • JS實現(xiàn)單行文字不間斷向上滾動的方法

    JS實現(xiàn)單行文字不間斷向上滾動的方法

    這篇文章主要介紹了JS實現(xiàn)單行文字不間斷向上滾動的方法,以實例形式較為詳細(xì)的分析了文字滾動效果實現(xiàn)的原理與技巧,需要的朋友可以參考下
    2015-01-01
  • js使用for...of遍歷對象

    js使用for...of遍歷對象

    本文主要介紹了js使用for...of遍歷對象,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-05-05
  • 分享十八個殺手級JavaScript單行代碼

    分享十八個殺手級JavaScript單行代碼

    這篇文章主要給大家分享了十八個殺手級JavaScript單行代碼,這些單行代碼可以幫助你提高工作效率并可以幫助調(diào)試代碼,對大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-10-10
  • JavaScript實現(xiàn)格式化字符串函數(shù)String.format

    JavaScript實現(xiàn)格式化字符串函數(shù)String.format

    本文主要介紹了JavaScript實現(xiàn)格式化字符串函數(shù)String.format(可自動解析引號轉(zhuǎn)義字符)。具有很好的參考價值,需要的朋友一起來看下吧
    2016-12-12
  • JavaScript 事件參考手冊

    JavaScript 事件參考手冊

    對于js的一些常見事件的總結(jié)
    2008-12-12
  • 理解javascript模塊化

    理解javascript模塊化

    這篇文章主要幫助大家深入理解javascript模塊化,感興趣的小伙伴們可以參考一下
    2016-03-03
  • 用Javascript做flash做的事..才完成的一個類.Auntion Action var 0.1

    用Javascript做flash做的事..才完成的一個類.Auntion Action var 0.1

    用Javascript做flash做的事..才完成的一個類.Auntion Action var 0.1...
    2007-02-02
  • webpack3.0升級4.0的方法步驟

    webpack3.0升級4.0的方法步驟

    這篇文章主要介紹了webpack3.0升級4.0的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 淺析js中base64與file的轉(zhuǎn)換

    淺析js中base64與file的轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了JavaScript中base64與file的轉(zhuǎn)換的實現(xiàn)方法,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-09-09

最新評論

黄浦区| 泸水县| 石渠县| 沅陵县| 杂多县| 报价| 南木林县| 崇文区| 锦屏县| 滁州市| 阳东县| 郎溪县| 宜宾县| 财经| 衡阳市| 西贡区| 西和县| 德钦县| 云和县| 岳阳市| 息烽县| 钟祥市| 互助| 扶沟县| 正定县| 遂昌县| 尉犁县| 闽侯县| 牡丹江市| 洪湖市| 黄石市| 南阳市| 弥渡县| 杭锦后旗| 株洲市| 修武县| 宜黄县| 黄浦区| 礼泉县| 澜沧| 延吉市|