字符串替换正则表达式不起作用

时间:2014-12-22 14:19:35

标签: javascript regex

我试图从字符串或文本中删除所有控制台。)并且此代码无效,为什么?

var str = "console.log('test')";
var pattern = /console\..*\(.*\);/gm;
console.log(str.replace(pattern, ""));

http://plnkr.co/edit/gzFPopi1qdd6PYZz2urM?p=preview

1 个答案:

答案 0 :(得分:3)

它不起作用,因为在你的测试字符串中没有;,但正则表达式需要一个。只需使用?

选择它
var pattern = /console\..*?\(.*?\);?/gm;

同时确保匹配不会与.*?贪婪。

检查下面的测试演示。

var str = "some string console.log('test'); and console.log(123) \
console.log('123', 12, 'asd'); \
test";

alert( str.replace(/console\..*?\(.*?\);?/gm, '') );