使用非 ASCII 字符作为 JavaScript 对象键 [重复]

Posted

技术标签:

【中文标题】使用非 ASCII 字符作为 JavaScript 对象键 [重复]【英文标题】:Using non-ASCII character as JavaScript object key [duplicate] 【发布时间】:2015-09-04 21:51:36 【问题描述】:

我有以下对象:

var obj = 
  'ア' : 'testing',
  'ダ' : '2015-5-15',
  'ル' : 123,
  'ト' : 'Good'
;

如何通过其非 ASCII 键(在本例中为日文字符)访问值?

肯定不能使用obj.アobj.'ア',这会导致javascript 解析错误。

【问题讨论】:

这是 JavaScript 吗?这不是一个正确的 JavaScript 对象:它使用 => 而不是 : obj.ア 在 Chrome 开发者控制台中为我工作.. @jasonscript 抱歉,这是一个错字,现已更正。 @Blorgbeard 我正在使用 CasperJS。它说 Parse Error ... 如果属性名称是有效的变量名称,您只能使用点表示法。 【参考方案1】:

您可以使用属性访问器:

obj['ト']

例子:

var obj = 
  'ア': 'testing',
  'ダ': '2015-5-15',
  'ル': 123,
  'ト': 'Good'
;

console.log(obj['ト']);
> Good

MDN:Property Accessors

【讨论】:

【参考方案2】:

这个怎么样:

    <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
    <script language=javascript>
        var obj = 
'ア':'testing',
'ダ':'2015-5-15',
'ル':123,
'ト':'Good'
;
alert(obj.ア);
</script>
</body>
</html>

【讨论】:

谢谢,但这会导致 Casper JS 中的解析错误。 语言属性已弃用多年。并且 CasperJS 的语法与普通的 JS 略有不同。【参考方案3】:

你可以使用下标来引用对象:

> var obj = 
  'ア' : 'testing',
  'ダ' : '2015-5-15',
  'ル' : 123,
  'ト' : 'Good'
;
> undefined
> obj['ア']
> "testing"

JavaScript 对象中的对象键和值也不应该用:(冒号)而不是=&gt;(粗逗号)分隔

【讨论】:

以上是关于使用非 ASCII 字符作为 JavaScript 对象键 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

防止在文本框中输入非 ascii 字符

如何使用 echo 编写非 ASCII 字符?

如何使用正则表达式和 Notepad++ 删除所有非 ASCII 字符?

Outlook导入联系人是否不支持非ASCII字符?

(grep)正则表达式匹配非ASCII字符?

如何从字符串中删除非 ASCII 字符?