替换所有出现的正则表达式不起作用

时间:2013-10-15 17:36:53

标签: javascript

我有以下代码:

var temp = '<p class="fasfasfasd">Type <strong>Markdown</strong> here. {:.fasfasfasd}</p>'+
                '<p class="fdfsdf">fdsfsdf {:.fdfsdf}</p>'
//this should match everything like {:*}
var re = /\{:(.*?)\}/;
console.log(temp);
temp = temp.replace(re, "", 'gm');
console.log(temp);

这是一个正在运行的示例:http://jsfiddle.net/AL8DN/

我想删除字符串temp中正则表达式的所有出现。但是,正则表达式的第二场比赛永远不会被删除。我错了什么?

1 个答案:

答案 0 :(得分:3)

来自Mozilla开发人员参考:

  

String.replace方法中flags参数的使用是   非标准。而不是使用此参数,请使用RegExp对象   带有相应的标志

因此,将此更改为:

var temp = '<p class="fasfasfasd">Type <strong>Markdown</strong> here. {:.fasfasfasd}</p>'+
                '<p class="fdfsdf">fdsfsdf {:.fdfsdf}</p>'
var re = /\{:(.*?)\}/gm;
console.log(temp);
temp = temp.replace(re, "");
console.log(temp);

它似乎工作正常。