在javascript中使用正则表达式删除\ n

时间:2011-06-07 16:38:58

标签: javascript regex

我有一个包含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'。

谢谢!

4 个答案:

答案 0 :(得分:2)

试试这个:

ele = ele.replace(/\s+<\/TD>/g,' </TD>')
正则表达式上的

/ m表示匹配多行,这有助于匹配字符串中的多个\ n。

<强>更新

  • 删除了/ m修饰符
  • 将\ s *更改为\ s +
  • 在替换字符串中引入了一个空格字符,因为浏览器会在TD中的文本后面渲染一个空格字符,这可能是您想要的(尽管最好不要使用空格并使用CSS填充/边距

答案 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,同时保留所有其他新行和空格。