[英]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.