我正在尝试替换多次出现的字符串,似乎没有什么对我有用。在我的浏览器中甚至在线测试时。我哪里错了?
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);
我从here那里得到了这个例子,那也不行。
答案 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)
答案 2 :(得分:1)
虽然有很多正则表达式的答案,但这是另一种方式:
str = str.split('[{name}]').join('John');
答案 3 :(得分:0)
字符[] {}应该在正则表达式中转义。