[英]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, '< ').replace(/>/g, '> '); document.getElementById("demo").innerHTML = res; } </script> </body> </html>
我希望输出为"#include <iostream>"
,但是</iostream>
相应的</iostream>
附加到所需的输出中。
到底是怎么回事? 我如何避免这种行为?
因为您的html中有<iostream>
,所以它在浏览器中被解释为标记,从而添加了额外的结束</iostream>
。 似乎您正在尝试使用JS对其进行转义,但为时已晚,因为您的浏览器在javascript之前加载了html,并添加了额外的结束标记。 在您的html中转义它,以避免附加的结束标记被附加为行为:
<p id="demo">#include <iostream></p>
我只想用
<
自动替换“ <”和“>”<
和>
分别。 @ 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, '< ').replace(/>/g, '> '); document.getElementById("demo").textContent = res; } </script> </body> </html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.