RegEx修剪文本中的新行并追加中断

时间:2017-10-25 08:05:14

标签: javascript html regex

使用表格复制word文档中的内容。

复制的HTML将如下所示:

This is above table
        
<table width="200px"><tr><td><table></table></td></tr></table>\n\n
        
This is below table
        

我需要输出如下所示:

This is above table

<br/><table width="200px"><tr><td><table></table></td></tr></table><br/>

This is below table

我需要为table元素追加break,而不是父表中的子表。

实际问题是当我从不同版本的Word和Excel复制并粘贴格式化表格时,HTML的生成方式不同。

Excel 2007:

<table width="200px"><tr><td><table></table></td></tr></table>

Word 2007:

<table width="200px"><tr><td><table></table></td></tr></table>\n\n

Excel 2013:

<table width="200px"><tr><td><table></table></td></tr></table>\n

我写得像这样:

html.replace(/<\/table>\n$/i, "</table><br/>").replace(/^<table>/i, "<br/><table>");`

我不想为每个版本保留多行代码。

2 个答案:

答案 0 :(得分:0)

试试下面的Regex,这会有所帮助:

html.replace(/<\/table>(\\n)*$/g, "</table><br/>").replace(/^<table/g, "<br/><table");

更新了正则表达式。

感谢。

答案 1 :(得分:0)

@Mohit的答案几乎是正确的,请使用:

html.replace(/<\/table>(\n)*$/g, "</table><br/>").replace(/^<table/g, "<br/><table")