完整测试代码
原来的代码是这样的
//普通替换
function doRepNormal(s){
var str=s.replace(/
\s*?<\/p>/ig,"");
str=str.replace(/
\s*?
\s*?<\/p>/ig, "");
str=str.replace(/
(\s|\ \;| | |\xc2\xa0)*?<\/p>/ig, "");
str=str.replace(/
\s*?<\/p>/ig,"");
str=str.replace(/
<\/p>/ig,"");
str=str.replace(/
\n <\/p>/ig, "
");
str=str.replace(/
\s*?<\/p>/ig, "");
str=str.replace(/
\s*?<\/p>/ig, "");
str=str.replace(/
\n <\/p>/ig, "");
str=str.replace(/
\n <\/p>/ig, "");
//表格替换
str=str.replace(/]*>/ig, "");
str=str.replace(/]*>[\s\S]*?<\/table>/gi,function(match,capture){
match=match.replace(/style[\s]*=[\s]*("|')[^<>"']*?\1/gi,'');
match=match.replace(/cl\ass[\s]*=[\s]*("|')[^<>"']*?\1/gi,'');
match=match.replace(/id[\s]*=[\s]*("|')[^<>"']*?\1/gi,'');
match=match.replace(/]*>|<\/font>/gi,'');
return match;
});
str=str.replace(/| ]*>/gi,function(match,capture){
match=match.replace(/style[\s]*=[\s]*("|')[^<>"']*?\1/gi,'');
match=match.replace(/cl\ass[\s]*=[\s]*("|')[^<>"']*?\1/gi,'');
match=match.replace(/id[\s]*=[\s]*("|')[^<>"']*?\1/gi,'');
return match;
});
return str;
} 后台修改成这样的 str=str.replace(/ ]*>/ig, "");
str=str.replace(/]*>[\s\S]*?<\/table>/gi,function(match,capture){
match=match.replace(/(style|class|id)[\s]*=[\s]*("|')[^<>"']*?\2/gi,'');
match=match.replace(/<\/?span[^<>]*>/gi,'');
match=match.replace(/]*>|<\/p>/gi,'');
match=match.replace(/]*>|<\/font>/gi,'');
return match;
});经过测试发现chrome中正常,但在ie8与ie7中有bug无法实现class与id的替换,文档声明都会影响一些结果,真是涨了见识 正好看到别的人分享的先留存一份,后续更新 用正则表达式取出table中的所有行(支持嵌套table) 此是通过csdn询问得高人之手写的。 谢谢gzdiablo 表达式: ]*>(?:(?:\s|\S)*?(?=)(?(|(?:(?:(?:\s|\S)*?)*? ))(?:\s|\S)*?|))*
一条表达式就可以获取你想要的 写得好辛苦 测试: -------------------获取3个match ============================================match2 | | | ==============================================match3 | | | ==============================================match4 | | |
正则表达式匹配html标签table 首先,要匹配任意内容“.”是不行的,因为不匹配“\n”,取不到想要的内容,所以有了如下表达式: [\s\S]* 当然,你也可以用 “[\d\D]*”、“[\w\W]*” 来表示。 现在我们来匹配一个html标签,匹配table如下: [\s\S]*<\/table> 或 [\s\S]*?<\/table>以上两个表达式,一个加了"?"和一个却不加“?”,那么这有什么区别呢? 我们知道“?”在正则表达式里是一个通配符:匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。 在这里,通过测试,我们得出这样的结论:在不加“?”的情况下,在匹配下面一段内容的时候: 我不是table里的内容
我也不是table里的内容
会把以 结束的内容都匹配出来加了“?”之后,只匹配第n个匹配的内容
完整测试代码小编提供 效果图 
相关内容
空调哪个符号是除湿的
空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
空调用多长时间需要加氟一次
一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
空调开多久需要休息多长时间
问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次
1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次
看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...
|