没有内置的(除了
innerHTML
为了达到这个目的,串行化是非常危险的),你必须自己写,例如:
function encodeXml(s) {
return (s
.replace(/&/g, '&').replace(/"/g, '"').replace(/'/g, ''')
.replace(/</g, '<').replace(/>/g, '>')
.replace(/\t/g, '	').replace(/\n/g, '
').replace(/\r/g, '
')
);
}
这是一个最大限度的安全逃生功能:
-
它总是编码
"
,
'
和tab/cr/lf字符,尽管它们只需要在属性值中转义,其中该特定引号字符用作分隔符。
-
它总是编码
>
尽管这只需要在
]]>
文本内容中的顺序。
如果不需要这些属性,可以删除
replace
_139;s您不需要(例如,很少需要将tab/cr/lf放入属性值中)。
如果需要生成HTML兼容的XHTML,请使用
'
而不是
'
如果你需要逃跑。
一般来说,你应该避免
htmlentities
使用
htmlspecialchars
相反,作为
HTML实体
不必要地将所有非ASCII字符编码为HTML实体引用,这也会在不正确的情况下破坏文本。
$charset
参数。