簡體   English   中英

使用javascript正則表達式替換字符實體

[英]Using javascript regex to replace a character entity

我有一組筆記無法正確顯示。 從源頭看,有&#xd;&#xa; 換行應該在哪里。 我想將這些實例替換為<br> 我已經使用了一個書簽,該書簽可用於諸如ABC類的純文本字符串,但不適用於給定的字符串。

例如,這很好用:

javascript:(function(){var re = new RegExp("ABC", "g"); document.getElementById('my_span').innerHTML=document.getElementById('my_span').innerHTML.replace(re, "<br>" );})();

而這不是:

javascript:(function(){var re = new RegExp("&#xd;&#xa;", "g"); document.getElementById('my_span').innerHTML=document.getElementById('my_span').innerHTML.replace(re, "<br>" );})();

奇怪的是,后者將采用&#xd;&#xa;的第一個實例&#xd;&#xa; 並刪除它而不替換它。

我正在使用的頁面無法加載jQuery,並且我正在公司環境中工作,因此我不願意在外部進行調用。

這是與innerHTML沒有收到&#xd;&#xa; 如我所願? 非常感謝您的幫助。

就像您說的那樣: innerHTML沒有收到您期望的那些字符。 將字符實體插入HTML會導致它們被解釋,而innerHTML返回解釋的版本,而不是原始版本。 如果你有:

<p id="test">Cookies &amp; Cream</p>

而您使用:

document.getElementById('test').innerHTML;

你不會得到:

Cookies &amp; Cream

你得到:

Cookies & Cream

同樣,當您在書簽中使用innerHTML時,您不會得到&#xd;&#xa; :您將獲得回車符和換行符。

要將這些字符與正則表達式匹配,請使用\\r\\n \\r將匹配回車符( &#xd; )。 \\n將匹配換行符( &xa; )。

var regex = new RegExp('\r\n', 'g');

暫無
暫無

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

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