是否有js函数将xml特殊字符替换为转义序列
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库:客户端HTML编码和解码
您可以使用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'
这些是您唯一需要担心的字符。
通常,您应该使用DOM接口来构建XML文档,这样就不必担心手动转义。只有当您将字符串混合在一起以构建XML时,这才会成为一个问题。
这是旧的,但我最喜欢的方法是让浏览器弄清楚:
function encodeXML(data){
var d = document.createElement('div');
d.appendChild(document.createTextNode(data));
return d.innerHTML;
}
encodeXML('&');
输出:
"&;"
您也可以使用d.innerText = data;
或d.textContent = data;
,但createTextNode()
具有最多的浏览器支持。
相关文章:
- javascript替换换行符和特殊字符
- 替换字符串javascript中的所有特殊字符..
- 如何在javascript中替换HTML特殊字符
- 替换
元素中的特殊字符的问题
- 如何替换 js 中的特殊字符
- 为什么不用特殊字符替换选择文本,以及如何删除此特殊字符
- 如何从替换特殊字符的字符串中创建URL
- 用Javascript替换从JSON中获取的数组数据特殊字符
- 将 URL 中的所有特殊字符(如“é”)替换为 JavaScript
- Javascript 将子字符串中的所有替换为特殊字符
- 特殊字符替换为空格
- 将文本上的特殊字符替换为 jquery
- 如何在javascript中用一个特殊字符开头的单词内的空格替换下划线
- Javascript替换特殊字符
- 是否有js函数将xml特殊字符替换为转义序列
- 根据长度(<4)提取特殊字符之间的子字符串,并将缺失的字符替换为0,使其为4
- 如何替换Javascript中的所有字符串?特别是与特殊字符的组合
- 将字符串中的特殊字符替换为_(下划线)
- 用特定的特殊字符替换特殊字符
- 特殊字符替换功能