使用正则表达式删除表中的width标记



在将内容保存到数据库之前,我正在进行一些html处理。当用户粘贴任何包含html表的内容时,我需要删除一些标记和属性。

我正在通过content.match('<table[^>]*>(.*?)</table>')提取表格内容。在这个内容中,它有width标记作为属性,也有style标记。CCD_ 2。

我想要像<table style="border-collapse: collapse;">那样的内容。我不想删除trtd内部的宽度属性和标记。有人能建议一个合适的正则表达式模式来做到这一点吗?

如果您能够自己获得<table...>令牌,那么以下正则表达式应该与前面没有减号的所有width属性匹配:

/(?:[^w-])widths*(=s*(["'])[^"']+2s*|:s*[^;]+;)/g

显然,您应该用空格替换匹配的内容。

查找:

(<table[^>]*) width="[^"]*"

替换为:

1

解释

(<table          :  find all '<table'...
[^>]*)          :  until first occurrence of a closing lace brace
width="[^"]*"  :  find ' width="' until first occurrence of a quotation mark,
select everything, and close it with a quotation mark

regex容器预览

欢呼,poli

最新更新