[英]Decode HTML entities in JavaScript?
& -> `&`
> -> `>`
任何可以處理這個的小型庫函數?
我的實用腰帶上總是有這個小功能:
function htmlDecode(input){
var e = document.createElement('div');
e.innerHTML = input;
return e.childNodes[0].nodeValue;
}
htmlDecode("&"); // "&"
htmlDecode(">"); // ">"
它適用於所有HTML 實體。
編輯:由於您不在 DOM 環境中,我認為您必須通過“困難”的方式來做到這一點:
function htmlDecode (input) {
return input.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">");
//...
}
如果您不喜歡鏈式替換,您可以構建一個對象來存儲您的實體,例如:
function htmlDecode (input) {
var entities= {
"&": "&",
"<": "<",
">": ">"
//....
};
for (var prop in entities) {
if (entities.hasOwnProperty(prop)) {
input = input.replace(new RegExp(prop, "g"), entities[prop]);
}
}
return input;
}
看起來像這樣:
function html_entity_decode(s) {
var t=document.createElement('textarea');
t.innerHTML = s;
var v = t.value;
t.parentNode.removeChild(t);
return v;
}
he (代表“HTML 實體”)是一個用 JavaScript 編寫的強大的 HTML 實體編碼器/解碼器。 它支持所有標准化的 HTML 命名字符引用, 像瀏覽器一樣處理不明確的&符號和其他邊緣情況,具有廣泛的測試套件,並且——與許多其他 JavaScript 解決方案相反——他可以很好地處理星體 Unicode 符號。 提供在線演示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.