[英]Is there js function that replace xml Special Character with their escape sequence?
我在网上搜索了很多,但没有找到用转义序列替换 xml 特殊字符的 js 函数?
有这样的吗?
我知道以下几点:
Special Character Escape Sequence Purpose
& & Ampersand sign
' ' Single quote
" " Double quote
> > Greater than
< < Less than
还有更多吗? 像 0×00 这样的十六进制值怎么写,
这也有问题吗?
我用过这个:
function htmlSpecialChars(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
这里有一个有趣的 JS 库: Client side HTML encoding anddecode
您可以使用PHPJS 项目中的PHP htmlspecialchars
。
这类似于我可以在 javascript 中转义 html 特殊字符吗?
那里接受的答案是这样的:
function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
但是,如果您使用的是 lodash,那么我喜欢该帖子中 cs01 的回答:
_.escape('fred, barney, & pebbles');
// => 'fred, barney, & pebbles'
这是旧的,但我最喜欢的方法是让浏览器弄清楚:
function encodeXML(data){
var d = document.createElement('div');
d.appendChild(document.createTextNode(data));
return d.innerHTML;
}
encodeXML('&');
输出:
“&”
你也可以使用d.innerText = data;
或d.textContent = data;
,但createTextNode()
拥有最多的浏览器支持。
这些是您唯一需要担心的字符。
通常,您应该使用 DOM 接口来构建 XML 文档,然后您无需担心手动转义。 如果您将字符串混搭在一起以构建 XML,那只会成为一个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.