项目中遇到这样的需求,一大段文章正文的html代码在手机中显示不全,原因是由于其它有table,而table表格中的tr/td都携带了从word中粘贴过来的样式,需要将这一大段的字符串中的table、tr、td中携带的样式清除掉,同时还不能破坏table结构,即要保留tr中的rowspan和td中的colspan属性。
html部分代码如下:
<p class=\"MsoNormal\" align=\"left\" style=\"text-align:left\"><span lang=\"EN-US\">
<o:p>文字中华人民共和国文字中华人民共和国文字中华人民共和国</o:p>
</span></p>
<table>
<tbody>
<tr style=\"height:13.5pt\">
<td width=\"117\" style=\"width:88.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt\"><p class=\"MsoNormal\" align=\"center\" style=\"text-align:center\"><span style=\"font-family:宋体;color:#1F497D\">项目<span lang=\"EN-US\">
<o:p></o:p>
</span></span></p></td>
<td width=\"137\" style=\"width:103.0pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt\"><p class=\"MsoNormal\" align=\"center\" style=\"text-align:center\"><span style=\"font-family:宋体;color:#1F497D\">金额<span lang=\"EN-US\">
<o:p></o:p>
</span></span></p></td>
<td width=\"153\" style=\"width:115.0pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt\"><p class=\"MsoNormal\" align=\"center\" style=\"text-align:center\"><span style=\"font-family:宋体;color:#1F497D\">经办人<span lang=\"EN-US\">
<o:p></o:p>
</span></span></p></td>
<td width=\"135\" style=\"width:101.0pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt\"><p class=\"MsoNormal\" align=\"center\" style=\"text-align:center\"><span style=\"font-family:宋体;color:#1F497D\">是否有发票<span lang=\"EN-US\">
<o:p></o:p>
</span></span></p></td>
</tr>
<tr style=\"height:13.5pt\">
<td width=\"117\" style=\"width:88.0pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt\"><p class=\"MsoNormal\" align=\"center\" style=\"text-align:center\"><span style=\"font-family:宋体;color:#1F497D\">合计<span lang=\"EN-US\">
<o:p></o:p>
</span></span></p></td>
<td colspan=\"3\" valign=\"bottom\" nowrap=\"\" style=\"width:103.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt\"><p class=\"MsoNormal\" align=\"center\" style=\"text-align:center\"><span lang=\"EN-US\" style=\"font-size:11.0pt;font-family:宋体;color:black\">
<o:p></o:p>
</span></p></td>
</tr>
</tbody>
</table>
<p class=\"MsoNormal\"><span style=\"font-family:宋体;color:#1F497D\">文字中华人民共和国文字中华人民共和国文字中华人民共和国。</span><span lang=\"EN-US\" style=\"color:#1F497D\">
<o:p></o:p>
</span></p>
JS脚本如下:
/*
*格式化内容,str即是html格式的字符串
*/
function formatContent(str){
str=str.replace(/<\\/?(html|head|title|meta|body)\\b[^>]*>/ig,\"\");
str=str.replace(/<table[^>]*>/ig,\"<table>\");
return str;
str=str.replace(/(<tr[^>]*>)/ig, function (a, b) {
if(a.indexOf(\'rowspan\')>-1){
a=a.replace(/([a-z]+)=\"([^\"]+)?\"/ig,function(c,d,e){
return d === \'rowspan\' ? (d + \'=\"\' + e + \'\"\') : \'\';
})
return a;
}else{
return \'<tr>\';
}
});
str=str.replace(/(<td[^>]*>)/ig, function (a, b) {
if(a.indexOf(\'colspan\')>-1){
a=a.replace(/([a-z]+)=\"([^\"]+)?\"/ig,function(c,d,e){
return d === \'colspan\' ? (d + \'=\"\' + e + \'\"\') : \'\';
})
return a;
}else{
return \'<td>\';
}
});
return str;
}
以上所述就是本文的全部内容了,希望大家能够喜欢。
本文地址:https://www.stayed.cn/item/10726
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我