Javascript 是否有js函数用转义序列替换xml特殊字符?
我在网上搜索了很多次,没有找到用转义序列替换xml特殊字符的js函数?Javascript 是否有js函数用转义序列替换xml特殊字符?,javascript,html,xml,escaping,special-characters,Javascript,Html,Xml,Escaping,Special Characters,我在网上搜索了很多次,没有找到用转义序列替换xml特殊字符的js函数? 有这样的东西吗 我知道以下几点: Special Character Escape Sequence Purpose & & Ampersand sign ' ' Single quote " "
有这样的东西吗 我知道以下几点:
Special Character Escape Sequence Purpose
& & Ampersand sign
' ' Single quote
" " Double quote
> > Greater than
< < Less than
特殊字符转义序列用途
&&;符号符号
“&apos;单引号
”“双引号
>大于
<
还有吗?写十六进制值,比如0×00,这也是一个问题吗?您可以使用来自的PHP。这些是您需要担心的唯一字符
通常,您应该使用DOM接口来构建XML文档,这样就不必担心手动转义。只有将字符串混合在一起以构建XML时,这才会成为一个问题。这里有一个有趣的JS库:我使用过:
function htmlSpecialChars(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
函数htmlSpecialChars(不安全){
不安全返回
.替换(/&/g,“&;”)
.replace(//g,“”)
.替换(/“/g,”)
.替换(/“/g,“&apos;”);
}
这与
公认的答案是:
function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
这很老了,但我最喜欢的方法是让浏览器来理解它:
function encodeXML(data){
var d = document.createElement('div');
d.appendChild(document.createTextNode(data));
return d.innerHTML;
}
encodeXML('&');
输出:
“&;”
您还可以使用
d.innerText=data代码>或d.textContent=数据
,但是createTextNode()
拥有最多的浏览器支持。我需要javascript,它在客户端上side@DorCohen对检查我的文章中的链接。谢谢你的回答,我用了“巴里-凯伊”的解决方案,因为它对我来说更好,如果我可以选择2个答案,我会选择你,但是+1你熟悉类似的函数C++吗?你熟悉类似的函数C++吗?@多尔科恩-不幸的是,不要忘记。可能重复的
function encodeXML(data){
var d = document.createElement('div');
d.appendChild(document.createTextNode(data));
return d.innerHTML;
}
encodeXML('&');