簡體   English   中英

在 javascript 中使用正則表達式刪除 \n

[英]Remove \n using regular expression in javascript

我有一個 javascript 字符串包含 html 表,如下所示:

  <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' 。

謝謝!

嘗試這個:

ele = ele.replace(/\s+<\/TD>/g,' </TD>')

正則表達式上的 /m 表示匹配多行,這有助於匹配字符串中的多個 \n。

更新

  • 刪除 /m 修飾符
  • 將 \s* 更改為 \s+
  • 在替換字符串中引入了一個空白字符,因為瀏覽器將在 TD 中的文本之后呈現一個空白字符,這可能是您想要的(盡管最好不要使用空格並使用 CSS 作為填充/邊距

嘗試這個:

ele = ele.replace(/\n<\/TD>/g, '</TD>');

我不確定您是在談論 HTML 源還是在運行時的內部 HTML,但您可以嘗試修剪每個 TD 元素的內部 HTML,如下所示:

var tds=document.getElementsByTagName('td'), i;
for (i=0; i<tds.length; i++) {
  tds[i].innerHTML = tds[i].innerHTML.trim();
}

假設您在名為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標記之間替換,而所有其他新行和空格保持不變。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM