replace() 方法用于在字元串中用一些字元替換另一些字元,或替換一個與正規表達式比對的子串。
參數
描述
regexp
必需。規定了要替換的模式的 RegExp 對象。請注意,如果該值是一個字元串,則将它作為要檢索的直接量文本模式,而不是首先被轉換為 RegExp 對象。
replacement
必需。一個字元串值。規定了替換文本或生成替換文本的函數。
一個新的字元串,是用 replacement 替換了 regexp 的第一次比對或所有比對之後得到的。
字元串 stringObject 的 replace() 方法執行的是查找并替換的操作。它将在 stringObject 中查找與 regexp 相比對的子字元串,然後用 replacement 來替換這些子串。如果 regexp 具有全局标志 g,那麼 replace() 方法将替換所有比對的子串。否則,它隻替換第一個比對子串。
replacement 可以是字元串,也可以是函數。如果它是字元串,那麼沒有比對都将由字元串替換。但是 replacement 中的 $ 字元具有特定的含義。如下表所示,它說明從模式比對得到的字元串将用于替換。
字元
替換文本
$1、$2、...、$99
與 regexp 中的第 1 到第 99 個子表達式相比對的文本。
$&
與 regexp 相比對的子串。
$`
位于比對子串左側的文本。
$'
位于比對子串右側的文本。
$$
直接量符号。
注意:ECMAScript v3 規定,replace() 方法的參數 replacement 可以是函數而不是字元串。在這種情況下,每個比對都調用該函數,它傳回的字元串将作為替換文本使用。該函數的第一個參數是比對模式的字元串。接下來的參數是與模式中的子表達式比對的字元串,可以有 0 個或多個這樣的參數。接下來的參數是一個整數,聲明了比對在 stringObject 中出現的位置。最後一個參數是 stringObject 本身。
在本例中,我們将使用 "W3School" 替換字元串中的 "Microsoft":
輸出:
在本例中,我們将執行一次全局替換,每當 "Microsoft" 被找到,它就被替換為 "W3School":
您可以使用本例提供的代碼來確定比對字元串大寫字元的正确:
在本例中,我們将把 "Doe, John" 轉換為 "John Doe" 的形式:
在本例中,我們将把所有的花引号替換為直引号:
在本例中,我們将把字元串中所有單詞的首字母都轉換為大寫: