我有一个从PHP编写到我的javascript中的变量(使用json_encode
),看起来有点像这样:
mappoints[x]['about'] = 'Administrator: Foo Barlt;br />Telephone: 555-4202<br />Email: bert@hotmail.com<br />Website: www.domain.com'
我正在使用谷歌地图地图点。使用json_encode
似乎非常挑剔我可以和不能进入的字符,所以我想知道如何使用javascript将这些特殊的html字符转换为真正的html字符?
更新
我构建变量的方式是:
var description = "<h3 style='margin: 0; padding: 0;'>" + mappoints[x]['name'] + "</h3><b>Director:</b> " + mappoints[x]['director'] + "<br/>" + mappoints[x]['about'];
变量中的HTML都很好,直到我添加about
索引。我没有附加或试过的功能似乎给了我正确的HTML。
答案 0 :(得分:4)
您可以使用dom为您解码这些实体。
mappoints[x]['about'] = 'Administrator: Foo Barlt;br />Telephone: 555-4202<br />Email: bert@hotmail.com<br />Website: www.domain.com'
mappoints[x]['about'] = $('<div/>').append(mappoints[x]['about']).text();
基本上,当您将html添加到dom时,它会将实体显示为他们所代表的字符,使用.text()
您可以在浏览器中将其显示为text
,而不是与实体的HTML。如果您想要回复html,可以使用.html()
e.g.。
答案 1 :(得分:1)
是否可以:
return mystring.replace(/&/g, "&").replace(/>/g, ">").replace(/</g, "<").replace(/"/g, """);
答案 2 :(得分:0)
仅仅因为@Musa的想法很棒但需要对我进行一些重新解释,我希望在这里发布一个快速功能,根据@ Musa的设计处理htmlspecialchars:
function htmlspecialchars_decode(string) {
$('body').append("<span style='display:none;visibility:hidden;' id='tempText'>" + string + "</span>");
var result = $('#tempText').text();
$('#tempText').remove();
return result;
};
答案 3 :(得分:-1)
试试这个
decodeURIComponent(str) or `unescape(str)` or `decodeURI(str)`