Teilen Sie eine Zeichenfolge durch Kommas auf und ignorieren Sie Kommas in doppelten Anführungszeichen mit JavaScript.
Um die Herausforderung zu bewältigen, eine Zeichenfolge durch Kommas zu teilen und dabei doppelte Anführungszeichen beizubehalten In Anführungszeichen gesetzte Segmente können wir reguläre Ausdrücke in JavaScript verwenden. So geht's:
var str = 'a, b, c, "d, e, f", g, h';
var arr = str.match(/(".*?"|[^",\s] )(?=\s*,|\s*$)/g);
// Handle the case of no matches to prevent errors
arr = arr || [];
// Iterate over the matches and display them
for (var i = 0; i Dieser reguläre Ausdruck verwendet zwei einfangende Gruppen, um interessierende Teilzeichenfolgen abzugleichen:
- Gruppe 1: Entspricht Segmenten in doppelten Anführungszeichen ("d, e, f ") mit einem gierigen Operator (.*?), um alles in doppelten Anführungszeichen zu erfassen.
- Gruppe 2: Entspricht jeder anderen Zeichenfolge (z. B. „a“, „g“), die keine doppelten Anführungszeichen, Kommas oder Leerzeichen ([^",\s]) enthält.
Der Lookahead Die Behauptung (?=\s*,|\s*$) stellt sicher, dass auf die Übereinstimmung entweder ein Leerzeichen und ein Komma oder das Ende der Zeichenfolge folgt. Dadurch wird sichergestellt, dass wir nur durch Kommas getrennte Segmente erfassen.
Durch den Abgleich sowohl von Segmenten in Anführungszeichen als auch von Segmenten ohne Anführungszeichen teilt diese Lösung die gegebene Zeichenfolge genau in ein Array aus sechs Elementen auf: ["a", "b", "c ", "d, e, f", "g", "h"].
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3