为什么replace方法回调函数中JSON不能用点语法调用?
下面代码弹窗是{}部分是undefined
var str = "今天{tianqi}很好,我的{xinqing}很糟,因为明天是{qingren}节!";
var dictionary = {
"tianqi":"天气",
"xingqing":"心情",
"qingren":"情人"
}
str = str.replace(/{(\w+)}/g,function(match,$1){
console.log($1);
return dictionary.$1;
});
alert(str);
但用中括号是可以的:
var str = "今天{tianqi}很好,我的{xinqing}很糟,因为明天是{qingren}节!";
var dictionary = {
"tianqi":"天气",
"xingqing":"心情",
"qingren":"情人"
}
str = str.replace(/{(\w+)}/g,function(match,$1){
console.log($1);
return dictionary[$1];
});
alert(str);
为什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(5)
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
a.A => a['A'] (这里A是字符串)