如何将字符串转义/编码为JavaScript标识符

如何将字符串转义/编码为JavaScript标识符,javascript,string,variables,identifier,Javascript,String,Variables,Identifier,我正在尝试从键/值列表创建对象。我的问题是,对象属性必须是有效的JavaScript标识符。至少使用AdobeExtendScript,我可以完美地创建具有错误属性的对象(请参见示例:错误的键->“-”-文字无效) var-kvp=[“键;值”,“错误的键;值”]; var obj={}; 对于(变量i=0;i抛出错误 当然,我可以运行替换(/-/,“”),但是否有任何编码/转义函数可以更普遍地实现这一目标 谢谢, gregor您可以使用数组表示法使用特殊字符访问这些属性 console.lo

我正在尝试从键/值列表创建对象。我的问题是,对象属性必须是有效的JavaScript标识符。至少使用AdobeExtendScript,我可以完美地创建具有错误属性的对象(请参见示例:错误的键->“-”-文字无效)

var-kvp=[“键;值”,“错误的键;值”];
var obj={};
对于(变量i=0;i抛出错误
当然,我可以运行
替换(/-/,“”)
,但是否有任何编码/转义函数可以更普遍地实现这一目标

谢谢,
gregor

您可以使用数组表示法使用特殊字符访问这些属性

console.log(obj["wrong-key"]);

好啊但请注意,
“错误的键”
是有效的js标识符吗?您所说的“有效的”js标识符是什么意思??当然,您完全可以有一个属性名,就像您有“错误的键”一样,不过如果可能的话,由于您遇到的问题,我会避免使用它。@Juri在规范方面是有效的。你可以工作,但正如你所想象的那样,如果不能控制输入数据。@格雷菲尔:如果不能控制输入数据,那么你就不能知道密钥。在这种情况下,您甚至无法编写代码,但必须动态检索代码。然后,访问属性的唯一方法是括号表示法。还是我误解了你?这不是一个解决办法,这是访问JavaScript对象属性的另一种方法。你有什么样的用例?这个键值列表来自哪里??
console.log(obj["wrong-key"]);