javascript - 转义对象的所有属性

标签 javascript escaping object-literal

如何在 JS 中转义对象的所有属性?

var literal = {
    valid:'thisIsAValidValue', 
    toEscape:'ThîsStringNéédsToBéEscàped'
};

//Does not work
escape(literal)

//Does not work either, how to loop over attributes?
$.each(literal.attributes, function(){
   this = escape(this);
});

最佳答案

首先,您真的确定要转义吗?这是一个旧的、已弃用的函数。

但在任何情况下,代码的形式都不会改变,无论您调用什么函数来转换值:

var key;
for (key in literal) {
    literal[key] = escape(literal[key]);
}

或者使用 jQuery 的 $.each,因为你似乎在使用 jQuery:

$.each(literal, function(key, value) {
    literal[key] = escape(value);
});

如果你想确保不处理继承的属性(尽管你的literal不会有任何可枚举的继承属性,除非有人确实非常顽皮并向对象添加了一个可枚举的属性.原型(prototype)):

var key;
for (key in literal) {
    if (literal.hasOwnProperty(key)) {
        literal[key] = escape(literal[key]);
    }
}

关于 for-in 的更多信息,请访问我的博客:Myths and realities of for..in

关于javascript - 转义对象的所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18400028/

相关文章:

javascript - 如何摆脱谷歌偏好脚本?

javascript - Algolia 搜索 : access results onclick

javascript - 带有四个子 div 的头部 div

kotlin - Kotlin使用Gson转义正斜线

java - 如何处理/理解 Java 中字符串中的一些奇怪符号,如 %2B、%5E20?

Javascript - 如何将变量用作函数*和*对象文字

javascript - ionic 推送通知应用程序

php - PHP/Mysql 中的任何语言概念以避免丢失字符串掩码(mysql_real_escape、addslahes 等)

javascript - 对象字面量中的箭头函数

jQuery 创建对象文字循环