百科科技 编程日记
var reg = /("([^\\\"]*(\\.)?)*")|('([^\\\']*(\\.)?)*')|(\/{2,}.*?(\r|\n))|(\/\*(\n|.)*?\*\/)/g,// 正则表达式str = $('event').html(); // 欲处理的文本console.log(str); // 打印出:原文本console.log(str.match(reg));// 打印出:匹配子串str.replace(reg, function(word) { // 去除注释后的文本return /^\/{2,}/.test(word) || /^\/\*/.test(word) ? "" : word;});
这个正则表达式,拥有4个子表达式:前两个是用来捕获" "和' '字符串,后两个分别用来选取\\和注释。
最需要注意的是第4个子表达式:
(\/{2,}.*?(\r|\n))|(\/\*(\n|.)*?\*\/)后面那个?号很关键,这个必须要用懒惰匹配,不然不能避免下图中的“干扰项2”。 
参考资料:
用正则(boost.regex)去除注释(支持"", "// ")
JavaScript RegExp 对象参考手册
- 上一篇:Node.js 简介【笔记1】
- 下一篇:正则表达式:去除标点符合和特殊字符
- 最近发表