簡體   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