Wie teilt man eine Zeichenfolge in ein Array in Javascript nach UpperCase-Zeichen auf?
Also möchte ich teilen:
'ThisIsTheStringToSplit'
in
('This', 'Is', 'The', 'String', 'To', 'Split')
Wie teilt man eine Zeichenfolge in ein Array in Javascript nach UpperCase-Zeichen auf?
Also möchte ich teilen:
'ThisIsTheStringToSplit'
in
('This', 'Is', 'The', 'String', 'To', 'Split')
Antworten:
Ich würde das so machen .match():
'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+/g);
Es wird ein Array wie folgt erstellt:
['This', 'Is', 'The', 'String', 'To', 'Split']
edit: da die string.split()Methode auch Regex unterstützt, kann dies so erreicht werden
'ThisIsTheStringToSplit'.split(/(?=[A-Z])/); // positive lookahead to keep the capital letters
das wird auch das Problem aus dem Kommentar lösen:
"thisIsATrickyOne".split(/(?=[A-Z])/);
"thisIsATrickyOne".match(/([A-Z]?[^A-Z]*)/g).slice(0,-1)
.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")
Dies sollte auch die Zahlen behandeln. Der Join am Ende führt dazu, dass alle Array-Elemente zu einem Satz verkettet werden, wenn Sie danach suchen
'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")
Ausgabe
"This Is The String To Split"
'ThisIs8TheSt3ringToSplit'.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")ausgibt This Is 8 The St 3 To Split, ommitting den kleinen Fall string ( ring) nach 3.
Hier sind Sie ja :)
var arr = UpperCaseArray("ThisIsTheStringToSplit");
function UpperCaseArray(input) {
var result = input.replace(/([A-Z]+)/g, ",$1").replace(/^,/, "");
return result.split(",");
}