jQuery / Javascript替换多个不起作用的事件

时间:2014-02-06 08:19:15

标签: javascript jquery

我正在尝试替换多次出现的字符串,似乎没有什么对我有用。在我的浏览器中甚至在线测试时。我哪里错了?

str = '[{name}] is happy today as data-name="[{name}]" won the match today. [{name}] made 100 runs.';

str = str.replace('/[{name}]/gi','John');

console.log(str);

http://jsfiddle.net/SXTd4/

我从here那里得到了这个例子,那也不行。

4 个答案:

答案 0 :(得分:2)

你不能引用正则表达式,正确的表示法是:

str = str.replace(/\[{name}\]/gi,'John');

此外,您必须转义[],否则内部内容将被视为字符类。

更新fiddle accordingly makes it work

声明正则表达式的方法有两种:

// literal notation - the preferred option
var re = /regex here/;
// via constructor
var re = new Regexp('regex here');

答案 1 :(得分:1)

您不应该将正则表达式放在引号中,而是需要转义[]

只需使用

str = str.replace(/\[{name}\]/gi,'John');

DEMO

答案 2 :(得分:1)

虽然有很多正则表达式的答案,但这是另一种方式:

str = str.split('[{name}]').join('John');

答案 3 :(得分:0)

字符[] {}应该在正则表达式中转义。