考虑以下 JavaScript 代码:
这将输出以下内容:
但我想输出以下内容:
我正在寻找一种好的方法,将字符串中花括号之间发现的多级点符号转换为多个参数,以便与方括号符号一起使用,就像这样:
var values = {
name: "Joe Smith",
location: {
city: "Los Angeles",
state: "California"
}
}
var string = "{name} is currently in {location.city}, {location.state}";
var out = string.replace(/{([\w\.]+)}/g, function(wholematch,firstmatch) {
return typeof values[firstmatch] !== 'undefined' ?
values[firstmatch] : wholematch;
});
这将输出以下内容:
Joe Smith is currently in {location.city}, {location.state}
但我想输出以下内容:
Joe Smith is currently in Los Angeles, California
我正在寻找一种好的方法,将字符串中花括号之间发现的多级点符号转换为多个参数,以便与方括号符号一起使用,就像这样:
values[first][second][third][etc]
本例中,我需要找出哪个正则表达式字符串和函数可以得到与以下等效的结果:
out = values[name] + " is currently in " + values["location"]["city"] +
values["location"]["state"];
注意: 我希望在不使用eval()
的情况下完成此操作。
var joe
重命名为var values
。 - Tauren