正则表达式替换table表格中的样式与空标记保留rowspan与colspan

 

最近几天的劳动成果,用正则表达式去除表格中的样式与class方便后台编辑的操作,在编写过程中不断进步,后续将不定时更新,需要的朋友可以参考下

完整测试代码

原来的代码是这样的

//普通替换
function doRepNormal(s){
var str=s.replace(/

s*?</p>/ig,””);
str=str.replace(/

s*?
s*?</p>/ig, “”);
str=str.replace(/

(s|&nbsp;| | |xc2xa0)*?</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(/<brs*?/?>s*?</p>/ig, “

“);
str=str.replace(/
n </p>/ig, “

“);
str=str.replace(/
n </p>/ig, “

“);
//表格替换
str=str.replace(/<table[^>]*>/ig, “

“);str=str.replace(/<table[^>]*>[sS]*?</table>/gi,function(match,capture){match=match.replace(/style[s]*=[s]*(“|’)[^<>”‘]*?1/gi,”);match=match.replace(/class[s]*=[s]*(“|’)[^<>”‘]*?1/gi,”);match=match.replace(/id[s]*=[s]*(“|’)[^<>”‘]*?1/gi,”);match=match.replace(/<font[^<>]*>|</font>/gi,”);return match;});str=str.replace(/<td[^>]*>/gi,function(match,capture){match=match.replace(/style[s]*=[s]*(“|’)[^<>”‘]*?1/gi,”);match=match.replace(/class[s]*=[s]*(“|’)[^<>”‘]*?1/gi,”);match=match.replace(/id[s]*=[s]*(“|’)[^<>”‘]*?1/gi,”);return match;});return str;}

后台修改成这样的

str=str.replace(/<table[^>]*>/ig, “

“);str=str.replace(/<table[^>]*>[sS]*?</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[^<>]*>|</font>/gi,”);
return match;
});经过测试发现chrome中正常,但在ie8与ie7中有bug无法实现class与id的替换,文档声明都会影响一些结果,真是涨了见识正好看到别的人分享的先留存一份,后续更新用正则表达式取出table中的所有行(支持嵌套table)此是通过csdn询问得高人之手写的。谢谢gzdiablo表达式:]*>(?:(?:s|S)*?(?=)(?(]*>(?:s|S)*?(?:|(?:(?:]*>(?:s|S)*?(?:s|S)*?)*?))(?:s|S)*?|))*一条表达式就可以获取你想要的写得好辛苦测试:    

     

 

 

     

 

  
 
       

    
 
 
     

 

 
  
  
 

——————-获取3个match

============================================match1
                           

 

   
     

                            

 

    
 
==============================================match2
             

                    
   
 
==============================================match3
                       

 

   
    
    
 

正则表达式匹配html标签table

首先,要匹配任意内容“.”是不行的,因为不匹配“n”,取不到想要的内容,所以有了如下表达式:

[sS]*

当然,你也可以用 “[dD]*”、“[wW]*” 来表示。

现在我们来匹配一个html标签,匹配table如下:

[sS]*</table>

[sS]*?</table>

以上两个表达式,一个加了”?”和一个却不加“?”,那么这有什么区别呢?

我们知道“?”在正则表达式里是一个通配符:匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。

在这里,通过测试,我们得出这样的结论:在不加“?”的情况下,在匹配下面一段内容的时候:

这是第一个table

我不是table里的内容

这是第二个table

我也不是table里的内容

这是第三个table

会把以开始,结束的内容都匹配出来

加了“?”之后,只匹配第n个匹配的内容

完整测试代码脚本之家小编提供

效果图:

正则表达式替换table表格中的样式与空标记保留rowspan与colspan

以上就是正则表达式替换table表格中的样式与空标记(保留rowspan与colspan)的详细内容,更多关于正则表达式替换table表格的资料请关注脚本之家其它相关文章!

来源:脚本之家

链接:https://www.jb51.net/article/184512.htm

免责申明:
1. 本站所有下载资源均不包含技术支持和安装服务!需要讨论请进群!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到审核区发布,分享有云朵奖励和额外收入!
4. 如有链接无法下载、失效或广告,请联系管理员处理!
5. 本站无法保证资源或破解时效性,如某些授权码过期等问题,恕不在修复范围内。
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!故不接受任何形式的退款,如确认资源确有问题的,会补给相应云朵以供再次购买。
7. 53Kr源码暂未发现后门代码,但无法保证100%安全,推荐检测方法:上传到 https://www.virustotal.com/在线查看是否有恶意代码以及其他有后门嫌疑的代码。
8. 在本站下载的源码我还是不建议正式使用,有特别喜欢的可以去程序官方购买。
53kr资源站仅提供学习的平台,所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。
53kr资源分享 » 正则表达式替换table表格中的样式与空标记保留rowspan与colspan

发表评论

提供最优质的资源集合

立即查看 了解详情