繁体   English   中英

逃避少于/大于javascript

[英]escape less / greater than javascript

我试图逃避一些代码时遇到问题...基本上,我想逃避“<”和“>”但我希望它们在我的#output div中显示为“<”和“>”。 目前,它们显示为“&lt;” 和“&gt;” 在页面上。

这显然是为了防止任何人在页面上利用/注入脚本。 这是我的代码:

var textval = $("#textarea").val();                   //textarea

filtered = textval.replace(/</gi,"&lt;");           //replace "<"

$("#output").html(filtered);                     //insert textarea data into div

任何人都可以发现我做错了什么,或者有更好的办法吗?

非常感谢

编辑:我确实想要一些HTML标签(比如<b>工作,所以我不能使用$ .text();不幸的是......)

试试这个:

var textval = $("#textarea").val();
$("#output").text(textval);      

jQuery提供了两种方法 - $ .text()和$ .html(),其中方法名称不言自明:)

有点不同的替换,但适用于我(即使使用.html() )。

演示

var str = $('#textarea').val();
$('#result').html(str.replace(/<|>/ig,function(m){
    return '&'+(m=='>'?'g':'l')+'t;';
}));

<textarea id="textarea">
    Hello, <b>World</b>!
</textarea>
<div id="result"></div>

(这只是为了验证它可以完成, .text()是更好的方法)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM