繁体   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