Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有js函数用转义序列替换xml特殊字符?_Javascript_Html_Xml_Escaping_Special Characters - Fatal编程技术网

Javascript 是否有js函数用转义序列替换xml特殊字符?

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 " "

我在网上搜索了很多次,没有找到用转义序列替换xml特殊字符的js函数?
有这样的东西吗

我知道以下几点:

Special Character   Escape Sequence Purpose  
&                   &           Ampersand sign 
'                   '          Single quote 
"                   "          Double quote
>                   >            Greater than 
<                   &lt;            Less than
特殊字符转义序列用途
&&;符号符号
“&apos;单引号
”“双引号
>大于
<
还有吗?写十六进制值,比如0×00,

这也是一个问题吗?

您可以使用来自的PHP。

这些是您需要担心的唯一字符


通常,您应该使用DOM接口来构建XML文档,这样就不必担心手动转义。只有将字符串混合在一起以构建XML时,这才会成为一个问题。

这里有一个有趣的JS库:

我使用过:

function htmlSpecialChars(unsafe) {
    return unsafe
    .replace(/&/g, "&amp;")
    .replace(/</g, "&lt;")
    .replace(/>/g, "&gt;")
    .replace(/"/g, "&quot;")
    .replace(/'/g, "&apos;");
}
函数htmlSpecialChars(不安全){
不安全返回
.替换(/&/g,“&;”)
.replace(//g,“”)
.替换(/“/g,”)
.替换(/“/g,“&apos;”);
}
这与

公认的答案是:

function escapeHtml(unsafe) {
    return unsafe
         .replace(/&/g, "&amp;")
         .replace(/</g, "&lt;")
         .replace(/>/g, "&gt;")
         .replace(/"/g, "&quot;")
         .replace(/'/g, "&#039;");
 }

这很老了,但我最喜欢的方法是让浏览器来理解它:

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('&');