2017-12-22 2 views
-5

Ich habe vollständige Adressen (Adresse, Staat, Land) und will es trennen inSeparate String

address.address 
address.state 
address.country 

zum Beispiel

var addressString = 'Calle del Padre Jesús Ordóñez, 18. 1, Madrid, España' 

das Ergebnis sein sollte:

address.address: Calle del Padre Jesús Ordóñez, 18. 1, 
address.state: Madrid 
address.country: España 

Antwort

0

Sie können die Felder erhalten, indem String#match mit einem regulären Ausdruck (regex101). Dann können Sie destructure (oder manuell zuweisen), der 2., 3., und 4. Teile des Strings auf die Variablen, und erstellen Sie ein Objekt:

const addressString = 'Calle del Padre Jesús Ordóñez, 18. 1, Madrid, España'; 
 

 
const [,addr, state, country] = addressString.match(/(.+),\s+([^,]+),\s+([^,]+)$/); 
 

 
const address = { 
 
    address: addr, 
 
    state, 
 
    country 
 
}; 
 

 
console.log(address);

0

Ich kenne Ihr Projekt nicht, aber es wäre besser, wenn Sie die Adresse bereits teilen und bei Bedarf hinzufügen.

könnten Sie Split-Funktion benutzen, um Ihre Zeichenfolge an Kommas aufzuteilen. Bei Bedarf können Sie das gesamte Array in einen String verbinden zurück, aber ohne die beiden letzten Index des Arrays, um Adresse zu erhalten, Staat und Land je nach Bedarf (unter der Annahme, Staat und Land kein Komma enthalten).

0

ES6 bietet uns Destrukturierung, Template Strings und Shortcuts, die den gesamten Prozess für Adressen, die einen konsistenten Separator verwenden, fast trivial machen.

const address_string = 'Calle del Padre Jesús Ordóñez, 18. 1, Madrid, España'; 
 
const [ street, number, state, country ] = address_string.split(','); 
 
const address = { "address" : `${street}, ${number}`, state, country }; 
 
console.dir(address);

Verwandte Themen