簡體   English   中英

Javascript 使用 RegExp 替換字符串模式?

[英]Javascript replacing string pattern using RegExp?

我想刪除任何出現在方括號內的數字的字符串模式,例如 [1]、[25]、[46]、[345](我認為括號內最多 3 個字符應該沒問題)。 我想用空字符串“”替換它們,即刪除它們。

我知道這可以用正則表達式來完成,但我對此很陌生。 這是我沒有做任何事情的東西:

var test = "this is a test sentence with a reference[12]";
removeCrap(test);
alert(test);

function removeCrap(string) {

var pattern = new RegExp("[...]"); 
string.replace(pattern, "");

}

誰能幫我解決這個問題? 希望問題很清楚。 謝謝。

  1. []在正則表達式中有特殊含義,它創建一個字符 class 如果你想從字面上匹配這些字符,你必須對它們進行轉義。

  2. replace [docs]僅替換第一次出現的字符串/表達式,除非您設置全局標志/修飾符。

  3. replace返回新字符串,它不會就地更改字符串。

考慮到這一點,應該這樣做:

var test = "this is a test sentence with a reference[12]";
test = test.replace(/\[\d+\]/g, '');
alert(test);

正則表達式解釋:

/.../中,/.../ 是正則表達式文字 g是全局標志。

  • \[匹配[字面意思
  • \d+匹配一位或多位數字
  • \]匹配]字面意思

要了解有關正則表達式的更多信息,請查看MDN 文檔http://www.regular-expressions.info/

這將做到:

test = test.replace(/\[\d+\]/g, '');
  • \[因為[本身引入了一個字符范圍
  • \d+ - 任意位數
  • \]如上
  • /g - 每次出現都這樣做

注意:你必須重新分配結果(要么給一個新變量,要么給它自己),因為String.replace不會改變原始字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM