[英]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, "");
}
誰能幫我解決這個問題? 希望問題很清楚。 謝謝。
[]
在正則表達式中有特殊含義,它創建一個字符 class 。 如果你想從字面上匹配這些字符,你必須對它們進行轉義。
replace
[docs]僅替換第一次出現的字符串/表達式,除非您設置全局標志/修飾符。
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.