正则表达式如何搜索()并替换为[]

时间:2010-09-06 04:13:43

标签: javascript regex string

愚蠢的问题,但我不知道如何在正则表达式中找到(2000)并将其替换为[2000]

4 个答案:

答案 0 :(得分:12)

你可以这样做:

str.replace(/\((\d+)\)/g, "[$1]");

使用正则表达式:\((\d+)\)

  • ()是正则表达式中的特殊字符 用于分组,以匹配文字 ( ),你需要逃避它们 \( \)
  • \d是数字的缩写。 \d+ 表示一个或多个数字。
  • ( )将分组并记住 数。记得的号码会 以后用于替换。
  • g进行全球替换。意思 每次出现的模板 字符串将被替换。
  • $1(之间的数字 )已被分组并记住。
  • / /是正则表达式分隔符。

答案 1 :(得分:1)

function _foo(str) {
   return str.replace(/[(](\d*)[)]/, '[$1]');
}

alert( _foo("(2000)") );  // -> '[2000]'
alert( _foo("(30)") );    // -> '[30]'
alert( _foo("(abc)") );   // -> '(abc)'
alert( _foo("()") );      // -> '[]'

答案 2 :(得分:0)

像这样:yourString.replace(/\(2000\)/, "[2000]");

答案 3 :(得分:0)

试试这个:

function foo(S) { 
    return S.replace(/\(([^\)]+)\)/g,"[$1]");
}