如何使用 JavaScript 正則表示式替換字串?
在本教程中,我們將探討如何使用 正則表示式 在 JavaScript 中替換字串中的特定子字串。有時我們可能希望將字串中重複出現的子字串替換為其他內容。在這種情況下,正則表示式非常有用。在使用它們解決當前問題之前,讓我們先了解正則表示式到底是什麼。
正則表示式 基本上是一種字元模式,可用於在字串中搜索該模式的不同出現。正則表示式使搜尋字元流中的特定模式並輕鬆替換它成為可能。例如,考慮正則表示式 /ab*c/,它表示我們正在查詢一種模式,其中包含一個“a”,後跟 0 個或多個“b”字元,再後跟一個“c”。
現在我們知道了正則表示式是什麼,讓我們看看如何在 JavaScript 中使用它們來替換字串中的子字串。由於正則表示式用於表示不同的字元模式,因此它們在查詢字串中的這些模式以及替換它們方面非常有用。
正是出於這個原因,JavaScript 具有字串資料型別內建方法。其中一種方法是 JavaScript 的replace() 方法。使用此函式,我們可以將字串中特定模式的出現替換為我們想要的任何內容,並且我們可以使用正則表示式來表示我們想要替換的模式。讓我們看看此函式是如何工作的。
語法和引數
replace() 函式的語法如下:
s.replace(pattern, replacement);
這裡s 是我們想要替換某些模式的字串。讓我們詳細瞭解這兩個引數:
pattern - 這指的是字串 s 的子字串,該子字串將被轉換為其他內容,即要替換的子字串。此引數可以是字串或正則表示式,用於表示要在字串 s 中查詢和替換的模式。只會替換 s 中模式的第一次出現,但是如果在此引數中提供帶有全域性修飾符“g”的正則表示式,則將替換字串 s 中該正則表示式的所有匹配項。自然,這是一個必需引數。
replacement - 這表示將取代字串 s 中模式的字串。模式的每次出現都將被此內容替換。請注意,此引數也可以是一個函式,該函式返回將用作 s 中 pattern 每次出現的替換的字串。
此函式會輸出具有所需替換的另一個字串。例如:
"abcdea".replace(/a/i, "b");
此操作後,結果字串將從“abcdea”更改為“bbcdea”。請注意,最後一個a 沒有被替換,因為作為模式提供的正則表示式不包含全域性修飾符“g”。
讓我們看看如何透過帶和不帶全域性修飾符“g”的程式碼來實現這一點。
示例 1:不帶全域性修飾符“g”。
在下面的示例中,我們使用不帶全域性修飾符“g”的字串 replace() 方法替換字串。
<!DOCTYPE html> <html> <body> <script> var st = "She sells sea shells on the seashore"; document.write("Original string : " + st); var regExp = /Sea/i; var modifiedSt = st.replace(regExp, "river"); document.write("<br>Modified string : " + modifiedSt); </script> </body> </html>
在上面的程式碼中,我們只使用了一個修飾符“i”的正則表示式來實現使用 JavaScript 替換字串的子字串,並且您可以注意到它只將“sea”的第一次出現更改為“river”,而沒有更改最後一個單詞“seashore”中的第二次出現。
示例 2:帶有全域性修飾符“g”。
在下面的示例中,我們使用帶有全域性修飾符“g”的字串 replace() 方法替換字串。
<!DOCTYPE html> <html> <body> <script> var st = "She sells sea shells on the seashore"; document.write("Original string : " + st); var regExp = /Sea/ig; var modifiedSt = st.replace(regExp, "river"); document.write("<br>Modified string : " + modifiedSt); </script> </body> </html>
在上面的程式碼中,我們使用帶有兩個修飾符“i”和“g”的正則表示式來實現使用 JavaScript 替換字串的子字串,並且您可以注意到最後一個單詞已從“seashore”更改為“rivershore”,這在前面的示例中沒有發生。
結論
在本教程中,我們瞭解瞭如何使用正則表示式在 JavaScript 中替換字串。這是透過使用 JavaScript 中的string.replace() 方法實現的,該方法使用正則表示式來識別和替換字串中的模式。