我们时常会祛除注释的一些字符,例如”//——-“或”/*——–*/”,以下记录常用的正则,JS端使用:
1 2 3 4 5 6 7 |
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|.)*?\*\/)
后面那个?号很关键,这个必须要用懒惰匹配,不然会有干扰哦。
==================================================
注意 当使它用作 字符串 的正则时应该,注意使用逃脱字符 \
所以需要下面这样写
var reg = “(/\\\*([^*]|[\\\r\\\n]|(\\\*+([^*/]|[\\\r\\\n])))*\\\*+/)|(//.*)”;
var exp = new RegExp(reg,“g”);
用 \\\ 表示 \