JavaScript 中替換字符串的幾種方法

2021-03-06 前端先鋒
// 每日前端夜話 第418篇
// 正文共:700 字
// 預計閱讀時間:5 分鐘

替換字符串中的文本是 JavaScript 開發中的常見任務。本文研究幾種用 replace 和正則表達式替換文本的方法。

替換單個字串

通常 JavaScript 的 String replace() 函數只會替換它在字符串中找到的第一個匹配的子符:

const myMessage = 'this is the sentence to end all sentences';
const newMessage = myMessage.replace('sentence', 'message');
console.log(newMessage); // this is the message to end all sentences

在這個例子中,僅替換了第一個 sentence 字串。

替換多個子串

如果希望 JavaScript 能夠替換所有子串,必須通過 /g 運算符使用正則表達式:

const myMessage = 'this is the sentence to end all sentences';
const newMessage = myMessage.replace(/sentence/g, 'message');
console.log(newMessage); // this is the message to end all messages

這一次次兩個子串都會被替換。

除了使用內聯 /g 之外,還可以使用 RegExp 對象的構造函數:

const myMessage = 'this is the sentence to end all sentences';
const newMessage = myMessage.replace(new RegExp('sentence', 'g'), 'message');
console.log(newMessage); // this is the message to end all messages```

替換特殊字符

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

如果給定字符串 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

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

你還知道哪些方法,請留言告訴大家。





精彩文章回顧,點擊直達

相關焦點

  • 在JavaScript中,使用replace()、test()和exec()方法匹配字符串
    replace()方法可以在字符串中使用一個或多個字符替換為另外一個或多個字符,也可以替換為一個與正則表達式能夠匹配上的子字符串。個參數可以是查找的字符串,也可以是一個正則表達式,此例子中是一個正則表達式。
  • 20個常用的JavaScript字符串方法
    concat() 方法用於連接兩個或多個字符串,此方法不改變現有的字符串,返回拼接後的新的字符串。//concat(v1, v2,..) var message="Sam" var final=message.concat(" is a"," hopeless romantic.")
  • 8個簡單的JavaScript字符串方法
    const str = "Hello World";str.length2、Sliceslice()方法提取字符串的一部分,並將提取的部分返回到新字符串中。它有兩個參數。這類似於切一條麵包,然後在其中切成薄片。
  • Javascript去除字符串中的點或其他符號
    今天在寫一個前端頁面的時候遇到了一個ip參數問題,我想把ip值中的點替換成 - 的形式。在前端上使用javascript進行操作的。測試了兩次沒有好用,程序直接把整個字符串都進行了替換,在考慮這個是為什麼呢?
  • JavaScript 中 Eval 函數的前世今生,執行代碼字符串
    Eval:執行代碼字符串內建函數 eval 允許執行一個代碼字符串。如果有人在使用它,那這是一個很好的使用現代語言結構或 JavaScript Module[1] 來替換它們的機會。請注意,eval 訪問外部變量的能力會產生副作用。
  • 在JavaScript中重複字符串的三種方法
    在本文中,我將解釋如何解決freeCodeCamp的「重複字符串重複字符串」挑戰。這涉及重複一個字符串一定次數。 我將介紹三種方法: 使用while循環 使用遞歸 使用ES6 repeat()方法 算法挑戰說明 重複給定的字符串(第一個參數)num次(第二個參數)。
  • JavaScript 函數replace揭秘
  • 來一輪帶注釋的demo,徹底搞懂javascript中的replace函數
    javascript這門語言一直就像一位帶著面紗的美女,總是看不清,摸不透,一直專注伺服器端,也從來沒有特別重視過,直到最近幾年,javascript越來越重要,越來越通用。最近和前端走的比較近,藉此機會,好好鞏固一下相關知識點。
  • java開發工程師 javascript的字符串
    單引號和\轉義都是可以的,但是推薦大家在開發過程中使用單引號,因為一旦轉義符\多了,代碼也會顯得非常凌亂,可讀性非常的差。在我們的字符串中,也有許多的內置函數,我給大家舉幾個常用的:1.大小寫的轉換:  toUpperCase()方法是將所有字母轉換成大寫字母,相反的,toLowerCase()方法是將所有字母轉換成小寫字母。 2.字符串的替換:
  • JavaScript算法練習:字符串反轉
    反轉一個字符串是JavaScript中常見的面試題之一。可能面試官會給你一個字符串「Hello Word!」,讓你通過JavaScript的方法,將其變成"!droW olleH"。我也是初學者,利用前面所學數組相關的知識以及題目的提示,我算是過關了,後來想,是不是還有其他的方法能破此題呢?搜索了一下,還是有不少的方法,這裡把這些方法羅列一下,以備後面可以使用。
  • 傻傻分不清系列|Python中各種字符串處理方法
    當然,.str.cat()方法功能強大,比如可以選擇使用參數sep來自定義分隔符來合併,我們使用「|」來連接上面的三個Series對象:點擊添加圖片描述(最多60個字)編輯(3) 字符替換操作字符串內建函數有便捷的字符替換方法.replace(),比如我們想字符串』abcd』中的』a』替換成』A』:點擊添加圖片描述(
  • 「乾貨」Python字符串中的split方法
    前面的文章我們有簡單的介紹過什麼是字符串、Python字符串的輸入方式、Python字符串的拼接方法等今天我們主要分享一下Python字符串中split方法!Python字符串中的方法有很多種,其中split方法是較為常用的方法。
  • JavaScript 字符串類型對象(String)
    你可以在字符串中使用引號,如下實例:var answer="It's alright"; var answer="He is called 'Johnny'"; var answer='He is called "Johnny"';或者你可以在字符串中使用轉義字符(\)使用引號:var answer='It\'s alright
  • 利用VBA代碼進行替換單元格內字符串的操作方法實例
    在系列的VBA代碼文章中,我講解了很多內容,有各種方法的利用,屬性的利用,今後還會陸續的給大家推出,爭取每篇文章都給大家解決一種問題,讓大家在看代碼的過程中可以了解到VBA代碼的實戰例子,把代碼稍微修改,就可以應用到自己的實際工作中,解決自己的實際問題,提高自己的工作效率。
  • php str-ireplace()函數替換字符串/數組中的一些字符
    str_ireplace()函數定義及用法在php中,str_ireplace()函數是使用來替換字符串或數組中的一些字符(不區分大小寫),返回替換後的新字符串或數組,原字符串或數組不變;str_ireplace()函數如果處理的數據是一個數組:該函數將對數組中的每個元素進行查找和替換
  • 13-python中的字符串
    通過前兩天的文章12-python中的集合我們學習了有關集合的知識,今天我們將學習一下python中的字符串。(一)字符串的介紹    字符串,是python中的基本數據類型,是一個不可變的字符序列。    字符串的駐留機制,是僅保留一份相同且不可變字符串的一種方法。
  • 探秘JavaScript中的六個字符
    如果我們添加一個字符串,JavaScript會假定我們希望為文本形式表示,所以將它轉換為一個字符串。如果我們添加一個正負前綴符號,JavaScript會假定我們希望為數值形式表示,如果可能的話,對我們來說並將字符串轉換為一個數字。如果我們添加一個否定符號,JavaScript會將將字符串轉換為一個布爾值。我們可以使用Javascript中[,],(,),!
  • python筆記54-re正則匹配替換字符串(sub和subn)
    re.sub用於替換字符串中匹配項,返回一個替換後的字符串,subn方法與sub()相同, 但返回一個元組, 其中包含新字符串和替換次數。sub介紹Python 的 re 模塊提供了re.sub用於替換字符串中的匹配項,sub是substitute表示替換。
  • C++、Java、JavaScript中的正則表達式
    就是用某種模式去匹配一類字符串的公式。如你要在一篇文章中查找第一個字是「羅」最後一個字是「浩」的三個字的姓名,即「羅*浩」;那麼「羅*浩」就是公式,也稱作模式(Pattern),這篇文章就是要匹配的串(或叫文本text)。再如,你要檢查輸入的一個字符串是否是126郵箱的格式,你得制定一個規則去查檢,這種規則就是正則表達式。
  • Word查找替換時如何替換一個任意字符串的內容?
    word在查找替換的時候,如何替換任意一個字符串的內容?word中的查找與替換的功能是十分強大的,比如說可以查找這個任意字符串的內容。下面小編就給大家演示操作一下。1.比如說當前我們要找這個「柳天素」,但是文章中有很多「柳地素」如何進行替換?