在Javascript

时间:2015-05-20 04:49:01

标签: javascript deprecation-warning

我正在尝试解码字符串而不是网址。我试过逃生功能,工作正常。但现在不推荐使用Escape功能

var a = "mysap'fff'"; //it could be any string

var usingEscape = escape(a);
alert(usingEscape);

结果是: mysap%27fff%27 ,这很好

var usingEncodeUri = encodeURI(a);
alert(usingEncodeUri);

结果是: mysap' fff

var usingEncodingUriComponemt = encodeURIComponent(a);
alert(usingEncodingUriComponemt);

结果是: mysap' fff

现在我需要由escape函数给出的结果。任何替代

感谢

1 个答案:

答案 0 :(得分:2)

您总是可以构建自己的转义函数,a-la:

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

还有一个可怕的 jQuery方法,虽然它可能不是跨浏览器安全的,并且不会逃避引号或双引号(这使得它有点无用,说实话):

var html = [INSERT SOME HTML HERE];
var escapedHTML = $("div.[SOME DIV]").text(html).html();

tl; dr:使用第一种方法并跳过第二种方法,除非你想要半转义字符串。