可能重复:
如何转义HTML
如何在JavaScript中将字符串转换为HTML?
例如
var unsafestring = "<oohlook&atme>";
var safestring = magic(unsafestring);
Run Code Online (Sandbox Code Playgroud)
其中,safestring现在等于"<ohhlook&atme>"
我在找magic(...).我没有使用JQuery magic.
j08*_*691 57
function htmlEntities(str) {
return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
}
Run Code Online (Sandbox Code Playgroud)
那么var unsafestring = "<oohlook&atme>";你会用htmlEntities(unsafestring);
gdo*_*ica 30
最常用的方法是使用jQuery实现此目的:
var safestring = $('<div>').text(unsafestring).html();
Run Code Online (Sandbox Code Playgroud)
如果要对所有HTML实体进行编码,则必须使用库或自行编写.
你可以使用比jQuery更紧凑的库,比如HTML Encoder和Decode
Ole*_*kov 28
不要打扰编码.请改用文本节点.文本节点中的数据保证被视为文本.
document.body.appendChild(document.createTextNode("Your&funky<text>here"))
Run Code Online (Sandbox Code Playgroud)
Thi*_*ter 14
你需要逃避<和&.逃避>也不会伤害:
function magic(input) {
input = input.replace(/&/g, '&');
input = input.replace(/</g, '<');
input = input.replace(/>/g, '>');
return input;
}
Run Code Online (Sandbox Code Playgroud)
或者你让DOM引擎为你做脏工作(使用jQuery,因为我很懒):
function magic(input) {
return $('<span>').text(input).html();
}
Run Code Online (Sandbox Code Playgroud)
这样做是创建一个虚拟元素,将您的字符串指定为其textContent(即没有特定于HTML的字符具有副作用,因为它只是文本)然后您检索该元素的HTML内容 - 这是文本但转换了特殊字符在必要的情况下到HTML实体.