我有一个包含html表的javascript字符串,如下所示:
<div class="nobrtable"><table class="at"><TBODY><TR><td> FY
</TD><td> Profit Margin
</TD><td> Asset Turnover
</TD><td> RoA
</TD><td> Leverage Ratio
</TD><td> RoE
</TD><td> Cash Conversion
</TD><td> Cash RoE
</TD><td> RoC
</TD></TR><TR><td> 2002
</TD><td> 5.1%
</TD><td> 1.42
</TD><td> 7.2%
</TD><td> 127%
</TD><td> 9.2%
</TD><td> 163%
</TD><td> 14.9%
</TD><td> 16.9%
</TD></TR>
</TD></TR></TBODY></table></div>
如何使用正则表达式删除表中的所有'\ n'?否则它太长了。
我尝试使用
ele = ele.replace(/\n/g, ' ');
它将替换我的字符串中的所有'\ n'。 我只想删除所有html表格中的所有'\ n'。
谢谢!
答案 0 :(得分:2)
试试这个:
ele = ele.replace(/\s+<\/TD>/g,' </TD>')
正则表达式上的/ m表示匹配多行,这有助于匹配字符串中的多个\ n。
<强>更新强>
答案 1 :(得分:1)
试试这个:
ele = ele.replace(/\n<\/TD>/g, '</TD>');
答案 2 :(得分:1)
我不确定您是否在运行时讨论HTML源代码或内部HTML,但您可以尝试修改每个TD元素的内部HTML,如下所示:
var tds=document.getElementsByTagName('td'), i;
for (i=0; i<tds.length; i++) {
tds[i].innerHTML = tds[i].innerHTML.trim();
}
答案 3 :(得分:1)
假设您在名为html
的变量中有原始文本,则以下内容适用于您:
var m = html.match(/<table[\s\S]*<\/table>/i);
var tableWithoutNewLine = m[0].replace(/\n/g, '');
html = html.replace(/<table[\s\S]*<\/table>/i, tableWithoutNewLine);
此代码变量html
只会在\n
和<table
标记之间替换所有新行</table
,同时保留所有其他新行和空格。