我正在尝试使用javascript的替换功能替换字符串中的"<"
和">"
。我使用它如下:
<html>
<body onload="myFunction()">
<p id="demo">#include <iostream></p>
<script>
function myFunction() {
var str = document.getElementById("demo").innerHTML;
var res = str.replace(/</g, '< ').replace(/>/g, '> ');
document.getElementById("demo").innerHTML = res;
}
</script>
</body>
</html>
&#13;
我希望输出为"#include <iostream>"
,但相应的</iostream>
会附加到所需的输出。
发生了什么事?我该如何避免这种行为?
答案 0 :(得分:1)
由于您的html中有<iostream>
,因此它会被解释为浏览器中的标记,这会增加额外的结束</iostream>
。看起来好像你正在尝试使用JS来逃避它,但是为时已晚,因为你的浏览器在javascript之前加载了html,添加了额外的结束标记。在你的html中转义它以避免额外的结束标记被追加行为:
<p id="demo">#include <iostream></p>
我只想自动更换&#34;&lt;&#34;和&#34;&gt;&#34;分别为
<
和>
。 @ rioc0719:我不想做手动更换。
请不要尝试用JS做到这一点。获取一个为您完成此任务的IDE。地狱,制作一个服务器端脚本,为您完成此任务;只是不要使用JS,客户端语言。
答案 1 :(得分:0)
有问题的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, '< ').replace(/>/g, '> ');
document.getElementById("demo").textContent = res;
}
</script>
</body>
</html>