considerare questo javascript:Javascript Regex per convertire la notazione punto per la notazione staffa
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;
});
Ciò produrrà il seguente:
Joe Smith is currently in {location.city}, {location.state}
ma voglio emettere il seguente:
Joe Smith is currently in Los Angeles, California
Sto cercando un buon modo per convertire più livelli di notazione punti trovati tra parentesi nella stringa in più parametri da utilizzare con la notazione staffa, in questo modo:
values[first][second][third][etc]
Essenzialmente, per questo esempio, sto cercando di capire quale stringa e la funzione regex mi avrebbe bisogno di finire con l'equivalente di:
out = values[name] + " is currently in " + values["location"]["city"] +
values["location"]["state"];
NOTA: Mi piacerebbe farlo senza usare eval()
.
appena notato un errore di battitura. Ribattezzato 'var joe' a' var values' – Tauren
Un'altra domanda simile ha una soluzione alternativa da @ J-P per le risposte qui. Sembra piuttosto elegante: http://stackoverflow.com/questions/3344392/dynamic-deep-selection-for-a-javascript-object/3344487#3344487 – Tauren