1. 程式人生 > 實用技巧 >js中使用replace()字串替換

js中使用replace()字串替換

在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. 例子

  1. 把'Jack'替換成'World'
var str="Hello Jack!"
str.replace(/Jack/, "World")  // Hello World
  1. 使用正則全域性替換,把所有的'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:
  1. 正則查詢替換時忽略字母大小寫
var str = "javascript Tutorial";
str.replace(/javascript/i, "JavaScript");
  1. 把'Jack, hi'替換成‘Hi, Jack’
var str = "Jack, Hi";
str.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");
  1. 把雙引號替換成單引號
var str = '"a", "b"';
str.replace(/"([^"]*)"/g, "'$1'");
  1. 把字串中所有單詞的首字母都轉換為大寫
var str = 'aaa bbb ccc';
str.replace(/\b\w+\b/g, function(word){
  return word.substring(0,1).toUpperCase()+word.substring(1);}
  );