逃避少于/大于javascript

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

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

var textval = $("#textarea").val(); //textarea filtered = textval.replace(/</gi,"<"); //replace "<" $("#output").html(filtered); //insert textarea data into div 

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

非常感谢

编辑:我确实想要一些HTML标签(如工作,所以我不能使用$ .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;'; }));  

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