是否有可能使用任何可能的方式(如正則表達式或其他方式)將html標記轉換爲使用javascript/jquery的html實體。如果是,那麼如何?將標籤轉換爲html實體
例子:
<div>
應轉換爲<div>
注:我說的不是服務器端語言。
是否有可能使用任何可能的方式(如正則表達式或其他方式)將html標記轉換爲使用javascript/jquery的html實體。如果是,那麼如何?將標籤轉換爲html實體
例子:
<div>
應轉換爲<div>
注:我說的不是服務器端語言。
試試這個功能的HTML特殊字符:
function htmlencode(str) {
return str.replace(/[&<>"']/g, function($0) {
return "&" + {"&":"amp", "<":"lt", ">":"gt", '"':"quot", "'":"#39"}[$0] + ";";
});
}
var d = "<div>"
d = d.replace(/<|>/g, function(chr){
return chr == "<" ? "<" : ">"
})
console.log(d)
當你標記與jQuery,jQuery的供電解決方案應爲你工作:
$("<div>").text("<div>bleh</div>whatever").html()
替換參數文本方法與你想逃避的任何標記。
非常有幫助的區別。 – 2011-11-18 03:25:01
jQuery中:
$('<div/>').text('This is fun & stuff').html(); // evaluates to "This is fun & stuff"
http://debuggable.com/posts/encode-html-entities-with-jquery:480f4dd6-13cc-4ce9-8071-4710cbdd56cb
如果你有變量,要插入它在一個div上,你可以調用文本()。
var myVar = "<span><strong>Some vars</strong> Some var extra</span>";
$("div").text(myVar);
我有2個安全編碼HTML的快速和小型實現。
可以編碼所有字符的字符串:
function encode(e){return e.replace(/[^]/g,function(e){return"&#"+e.charCodeAt(0)+";"})}
或者只是針對主角擔心(&,inebreaks,<,>,「和「),如:
function encode(r){
return r.replace(/[\x26\x0A\<>'"]/g,function(r){return"&#"+r.charCodeAt(0)+";"})
}
var myString='Encode HTML entities!\n"Safe" escape <script></'+'script> & other tags!';
test.value=encode(myString);
testing.innerHTML=encode(myString);
/*************
* \x26 is &ersand (it has to be first),
* \x0A is newline,
*************/
<p><b>What JavaScript Generated:</b></p>
<textarea id=test rows="3" cols="55"></textarea>
<p><b>What It Renders Too In HTML:</b></p>
<div id="testing">www.WHAK.com</div>
有一個簡潔的方法這使用String.prototype.replace()
和正則表達式如下:
var tag = "<h1>This should </h1>be bold<h2> and big</h2>";
var escapedTag = tag.replace(/</g, "<").replace(/>/g, ">");
爲什麼不'''而不是'#39'? – 2010-04-10 15:35:17
@Eli Gray:*實體是在XML 1.0中引入的(因此爲XHTML定義),但它沒有在HTML 4中定義。(請參閱http://www.w3.org/TR/xhtml1/#C_16) – Gumbo 2010-04-10 15:48:40
多麼驚人的一小段代碼。花了我一分鐘,看看你在那裏做什麼!你已經過了我的晚上。 – 2010-11-02 22:07:01