[英]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.