var reg = /("([^"]*()?)*")|(([^]*()?)*)|(/{}*?(r|n))|(/*(n|)*?*/)/g// 正则表达式 str = $(event)html(); // 欲处理的文本consolelog(str); // 打印出原文本consolelog(strmatch(reg));// 打印出匹配子串strreplace(reg function(word) { // 去除注释后的文本 return /^/{}/test(word) || /^/*/test(word) ? "" : word;});
这个正则表达式拥有个子表达式前两个是用来捕获" "和 字符串后两个分别用来选取和/* */注释
最需要注意的是第个子表达式
(/{}*?(r|n))|(/*(n|)*?*/)
后面那个?号很关键这个必须要用懒惰匹配不然不能避免下图中的“干扰项”