Javascript String split – Text zu Array
split () teilt eine Text bzw. Zeichenkette oder String bei jedem Vorkommen eines einfachen Teilstrings (z.B. bei Kommas) oder regulären Ausdrucks und speichert die Fragmente in einem Array. Der optionale Parameter n gibt die maximale Anzahl von Feldern an, die von split () erzeugt werden sollen.
Text / String in ein Array umwandeln
string.split() ist ein wahrer Methusalem aus dem Jahr 1999, aber immer arbeitet immer noch stabil und zuverlässig sowohl mit Strings als auch mit Regulären Ausdrücken (Regex).
const myArr = str.split(" ");
trennt einen String am Leerzeichen.
const myArr = str.split(/[,.;]/);
trennt bei Komma, Punkt und Semikolon.
Ein optionaler zweiter Parameter bestimmt die Anzahl der Elemente im Ergebnis-Array:
Um die ersten drei Textelemente als Array zu speichern:
function listArray (elem, index) { result.innerHTML += "index [" + index + "] " + elem.trim() + "<br>"; } let result = document.getElementById("result"); let simplestring = document.querySelector("#simplestring").innerHTML; // Text beim Komma trennen und 3 Elemente in Array speichern und ausgeben let felder = simplestring.split(',', 3); felder.forEach (listArray);
Am Rande: elem.trim(), um die Leerzeichen vor / nach den den Eingaben zu entfernen.
URL mit split in Pfad und Dateinamen trennen
window.location.pathname gibt den Pfad zur aktuellen Seite zurück. string.split teilt den Pfadnamen bei jedem / und speichert die einzelnen Segmente in einem Array.
Den letzten Teil des Pfads – z.B. den Dateiname der HTML-Datei – erreicht dann ein einfaches array.pop().
const loc = window.location.pathname; const path = loc.split("/"); const filename = path.pop(); console.log (filename);
split() mit regulärem Ausdruck
Es wird wohl wirklich meist das Komma sein, anhand dessen ein String in ein Array geteilt werden sollen. Wenn der String an verschiedenen Zeichen gesplittet werden soll, kann split() mit einem regulären Ausdruck aufgerufen werden.
Hier wird der String sowohl beim Komma als auch beim Bindestrich geteilt.
beim Bindestrich ────┐ │ beim Komma ────┐ │ │ │ ▼ ▼ let vornamen = signs.split(/,|-/); vornamen.forEach (listArray2);
Der Senkrecht-Strich (Pipe) zwischen den beiden Zeichen ist das ODER der regulären Ausdrücke.
Löcher im Array
Wenn der String beim Leerzeichen gesplittet wird und nicht sichergestellt ist, dass die Ausdrücke immer nur durch genau ein Blank getrennt sind, kann ein Array mit Löchern entstehen.
["Paul"," ","Pauline"," "," "," "," ","Postpaket"]
Auch wieder ein Fall für einen regulären Ausdruck:
Bei einem oder mehr Blanks
+
|
let notemp = emp.split(/\s+/);