2017-06-14 2 views
0

Ich habe eine Zeichenfolge, die so aussieht 'a,b,"c,d",e,"f,g,h"'.String aufteilen, aber intakte Strings intakt lassen?

Ich möchte in der Lage sein, diese Zeichenfolge auf , zu teilen, aber eingekapselte Strings intakt lassen die folgende Ausgabe erhalten: ["a","b","c,d","e","f,g,h"].

Gibt es eine Möglichkeit, dies zu tun, ohne den String char durch char analysieren?

+0

ist 'a, b "c, d", e, "f, g, h" 'eine gültige JavaScript-Zeichenfolge? – Hitmands

+1

ist Ihre Eingabe a, b "c, d", e, "f, g, h". oder a, b, "c, d", e, "f, g, h". Ich meine, hast du ein ',' nach b –

+0

@Hitmands ja ist es –

Antwort

5

Sie können ein Spiel der Saiten erstellen, dann die Spiele Karte und jede " in den Elementen ersetzen:

let f = 'a,b"c,d",e,"f,g,h"'; 
 
let matches = f.match(/\w+|(["]).*?\1/g); 
 

 
let res = matches.map(e => e.replace(/"/g, '')); 
 
console.log(res);

+1

Gut gemacht, nette Annäherung. –

+1

Danke für die schnelle Antwort. Diese Antwort passt zu meinen Bedürfnissen und ich werde es als die akzeptierte Antwort markieren – duck

Verwandte Themen