替换方括号内的文本

时间:2011-05-24 09:46:06

标签: javascript regex

var a = "[i] earned [c] coin for [b] bonus";

如何从JavaScript上面的变量中获取字符串“__赚__硬币为__ bonus”?

我想要做的就是将所有括号[]及其内容替换为__

3 个答案:

答案 0 :(得分:8)

a = a.replace(/\[.*?\]/g, '__');

如果您希望换行符可以使用,则可以使用:

a = a.replace(/\[[^\]]*?\]/g, '__');

答案 1 :(得分:3)

a = a.replace(/\[[^\]]+\]/g, '__');

jsFiddle

答案 2 :(得分:1)

以下是匹配群组的有趣示例。

var text = "[i] italic [u] underline [b] bold";

document.body.innerHTML = text.replace(/\[([^\]]+)\]/g, '(<$1>$1</$1>)');


击穿

/           // BEGIN  pattern
  \[        // FIND   left bracket (literal) '['
    (       // BEGIN  capture group 1
      [     // BEGIN  character class
        ^   // MATCH  start anchor OR
        \]  // MATCH  right bracket (literal) ']'
      ]     // END    character class
      +     // REPEAT 1 or more
    )       // END    capture group 1
  \]        // MATCH  right bracket (literal) ']'
/           // END    pattern
g           // FLAG   global search