簡體   English   中英

javascript replace無法與“ <”一起使用

[英]javascript replace fails to work with “<”

我正在嘗試使用javascript的replace函數替換字符串中的"<"">" 我使用它如下:

 <html> <body onload="myFunction()"> <p id="demo">#include <iostream></p> <script> function myFunction() { var str = document.getElementById("demo").innerHTML; var res = str.replace(/</g, '&lt; ').replace(/>/g, '&gt; '); document.getElementById("demo").innerHTML = res; } </script> </body> </html> 

我希望輸出為"#include <iostream>" ,但是</iostream>相應的</iostream>附加到所需的輸出中。

到底是怎么回事? 我如何避免這種行為?

因為您的html中有<iostream> ,所以它在瀏覽器中被解釋為標記,從而添加了額外的結束</iostream> 似乎您正在嘗試使用JS對其進行轉義,但為時已晚,因為您的瀏覽器在javascript之前加載了html,並添加了額外的結束標記。 在您的html中轉義它,以避免附加的結束標記被附加為行為:

<p id="demo">#include &lt;iostream&gt;</p>

我只想用&lt;自動替換“ <”和“>” &lt; &gt; 分別。 @ rioc0719:我不想手動更換。

不要嘗試使用JS執行此操作。 獲取為您執行此操作的IDE。 該死,制作一個服務器端腳本來為您完成此任務; 只是不要為此使用客戶端語言JS

2個問題的答案

 <html> <body onload="myFunction()"> <p id="demo">#include <iostream> </p> <script> function myFunction() { var str = document.getElementById("demo").innerHTML; var res = str.replace(/</g, '&lt; ').replace(/>/g, '&gt; '); document.getElementById("demo").textContent = res; } </script> </body> </html> 

暫無
暫無

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

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