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

Javascript使用RegExp替换字符串模式?,javascript,html,string,Javascript,Html,String,我想删除方括号内数字的字符串模式的任何出现,例如[1]、[25]、[46]、[345](我认为括号内最多可以有3个字符)。我想用空字符串“”替换它们,即删除它们 我知道这可以通过正则表达式来实现,但我对这一点很陌生。以下是我所拥有的,但却毫无用处: var test = "this is a test sentence with a reference[12]"; removeCrap(test); alert(test); function removeCrap(string) { var

我想删除方括号内数字的字符串模式的任何出现,例如[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, "");
}

有人能帮我解决这个问题吗?希望问题清楚。谢谢。

这样就可以了:

test = test.replace(/\[\d+\]/g, '');
  • \[
    因为
    [
    本身引入了字符范围
  • \d+
    -任意位数
  • \]
    如上所述
  • /g
    -每次都要这样做
注意:由于
String.replace
不会更改原始字符串,因此必须重新分配结果(要么分配给新变量,要么返回到其本身)。

这样做:

test = test.replace(/\[\d+\]/g, '');
  • \[
    因为
    [
    本身引入了字符范围
  • \d+
    -任意位数
  • \]
    如上所述
  • /g
    -每次都要这样做
注意:由于
String.replace
不会更改原始字符串,因此必须重新分配结果(要么分配给新变量,要么返回到其本身)

  • []
    在正则表达式中有一个特殊的含义,它会创建一个新的字符。如果您想逐字匹配这些字符,必须对它们进行转义

  • 仅替换字符串/表达式的第一个匹配项,除非设置全局标志/修饰符

  • replace
    返回新字符串,它不会在适当的位置更改字符串

  • 考虑到这一点,这应该做到:

    var test = "this is a test sentence with a reference[12]";
    test = test.replace(/\[\d+\]/g, '');
    alert(test);
    
    正则表达式解释:

    在JavaScript中,
    /…/
    是一个正则表达式文本。
    g
    是全局标志

    • \[
      按字面意思匹配
      [
    • \d+
      匹配一个或多个数字
    • \]
      按字面意思匹配
      ]
    要了解有关正则表达式的更多信息,请查看和

  • []
    在正则表达式中有一个特殊的含义,它会创建一个新的字符。如果您想逐字匹配这些字符,必须对它们进行转义

  • 仅替换字符串/表达式的第一个匹配项,除非设置全局标志/修饰符

  • replace
    返回新字符串,它不会在适当的位置更改字符串

  • 考虑到这一点,这应该做到:

    var test = "this is a test sentence with a reference[12]";
    test = test.replace(/\[\d+\]/g, '');
    alert(test);
    
    正则表达式解释:

    在JavaScript中,
    /…/
    是一个正则表达式文本。
    g
    是全局标志

    • \[
      按字面意思匹配
      [
    • \d+
      匹配一个或多个数字
    • \]
      按字面意思匹配
      ]
    要了解有关正则表达式的更多信息,请查看和。

    @maxcollins:我的荣幸:)欢迎使用SO,不要忘记接受对您帮助最大的答案(单击旁边的勾选框)。@maxcollins:我的荣幸:)欢迎使用SO,不要忘记接受对您帮助最大的答案(通过单击旁边的勾号轮廓)。