js中使用replace()字串替換
阿新 • • 發佈:2020-08-09
在js中,我們經常會需要將某些字串替換成指定的字串,這是可以使用replace()
方法,它不僅支援使用字串替換,還能用正則替換
1. 定義:
/** * @param regexp/substr 被替換的字串或 RegExp 物件,如果該值是一個字串,則將它作為要檢索的直接量文字模式,而不是首先被轉換為 RegExp 物件 * @param replacement 替換文字或生成替換文字的函式 * @return 一個新的字串,是用 replacement 替換了 regexp 的第一次匹配或所有匹配之後得到的 **/ stringObject.replace(regexp/substr,replacement)
如果第一個引數是一個正則,就會查詢與 regexp
相匹配的子字串,然後用 replacement
來替換這些子串。如果 regexp
具有全域性標誌 g,那麼 replace()
方法將替換所有匹配的子串。否則,它只替換第一個匹配子串。如果replacement
是一個函式,那麼這個函式的返回值就會作為替換文字。如果replacement
是一個字串,那麼字串中的$字元是有特殊含義的:
$1、$2、...、$99 與 regexp 中的第 1 到第 99 個子表示式相匹配的文字
$& 與 regexp 相匹配的子串
$` 位於匹配子串左側的文字
$' 位於匹配子串右側的文字
$$ 直接量符號
2. 例子
- 把'Jack'替換成'World'
var str="Hello Jack!"
str.replace(/Jack/, "World") // Hello World
- 使用正則全域性替換,把所有的'COVID-19'替換成'XXX'
var str = "People with COVID-19 have had a wide range of symptoms reported – ranging from mild symptoms to severe illness. Symptoms may appear 2-14 days after exposure to the virus. People with these symptoms may have COVID-19:" str.replace(/COVID\-19/g, "XXX") // People with XXX have had a wide range of symptoms reported – ranging from mild symptoms to severe illness. Symptoms may appear 2-14 days after exposure to the virus. People with these symptoms may have XXX:
- 正則查詢替換時忽略字母大小寫
var str = "javascript Tutorial";
str.replace(/javascript/i, "JavaScript");
- 把'Jack, hi'替換成‘Hi, Jack’
var str = "Jack, Hi";
str.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");
- 把雙引號替換成單引號
var str = '"a", "b"';
str.replace(/"([^"]*)"/g, "'$1'");
- 把字串中所有單詞的首字母都轉換為大寫
var str = 'aaa bbb ccc';
str.replace(/\b\w+\b/g, function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);}
);