我意识到这个问题的标题可能不准确,但我想知道如何使用XSLT中的东西来清理Javascript中的字符。例如,我有一个JSON,我用它来提取某些信息,其中一个是酒店名称。问题是酒店的名字中有撇号,例如乔治酒店。当我在Chrome或Firefox中显示它时,它工作正常,但在IE8中它给我george's
。
我的代码是:
var hotel_title = j.data.hotels[i].title
我试过了:
var zz = escape(hotel_title);
任何帮助将不胜感激。
答案 0 :(得分:2)
或者:
您的文档是HTML
Chrome和Firefox试图通过将'
呈现为'
而不应该(因为'
是XML - 因此XHTML - 不是 HTML),但实际上它只是令人困惑。通过不用'
替换实体,IE的行为正常。
或者:
您的文档是XHTML
IE未正确检测到此情况,因此未使用'
替换该实体。
您可能的两种解决方案是:
将文档明确设置为XHTML,而不是HTML
(如果您想支持旧IE,则不理想)
停止从源中发送数据'
;只需在你的JSON中写'
。
(你应该这样做)
答案 1 :(得分:0)
您的JSON中的字符串是否已经过html编码?如果是,则需要将其分配给某个对象的innerHTML
属性。如果没有,请将其分配给innerText
。
答案 2 :(得分:-2)
一个简单的解决方案是
var elt = document.createElement("div");
elt.innerHTML = yourString;
unescapedString = elt.textContent;