Zeichenkette-getrennte Zeichenkette zu camelCase konvertieren?
Für das Beispiel nehmen wir an, ich habe immer einen string, getrennt durch "-". Gibt es eine Möglichkeit zu transformieren
es-ist-ein-toller-Tag-heute
zu
itIsAGreatDayToday
Mithilfe Von RegEx?
InformationsquelleAutor der Frage Hoa | 2012-05-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja (bearbeitet für die Unterstützung von nicht-Kleinbuchstaben-Eingabe und Unicode):
Sehen Sie mehr über "ersetzen " callbacks" auf MDN ist "Die Angabe einer Funktion als parameter" Dokumentation.
Das erste argument für die callback-Funktion ist die vollständige übereinstimmung, und die folgenden Argumente sind die in Klammern gesetzten Gruppen in der regex (in diesem Fall werden die Zeichen nach dem Bindestrich).
InformationsquelleAutor der Antwort apsillers
Passen Sie auf das word-Zeichen nach jedem Bindestrich (
-
) oder den Beginn der Zeichenfolge, oder könnte man vereinfachen, indem Sie passend zu den Wort-Zeichen, nach jedem Wort-Grenze (\b
):InformationsquelleAutor der Antwort maerics
Hier ist eine demo
InformationsquelleAutor der Antwort Joseph
Diese sollten auch funktionieren:
IMHO und es ist etwas effizienter, da wir nicht die Umwandlung ganzen input-string in Kleinbuchstaben zuerst und dann umwandeln in Großbuchstaben um, wenn nötig. Diese Funktion wandelt nur die ersten Buchstaben in Kleinbuchstaben und dann alle Zeichen nach dem Bindestrich
-
Großbuchstaben.InformationsquelleAutor der Antwort anubhava
Sehen http://jsfiddle.net/54ZcM/
InformationsquelleAutor der Antwort Gabriel Santos
Ich weiß, diese Frage ist ein bisschen alt, aber,
Hier ist meine version von camelCase-Funktion:
Er behandelt alle die folgenden Grenzfälle:
Hier ist ein link zu live-tests: http://jsfiddle.net/avKzf/2/
Hier sind die Ergebnisse von tests:
Beachten Sie, dass Zeichenfolgen mit Trennzeichen wird in einem Großbuchstaben am Anfang.
Wenn das ist nicht, was Sie erwarten würde, Sie können immer lcfirst.
Hier ist meine lcfirst, wenn Sie es brauchen:
InformationsquelleAutor der Antwort Joon
Dies funktioniert gut, aber es könnte jemand in der Lage sein, um es zu säubern.
http://jsbin.com/yageqi/1/edit?js,Konsole
InformationsquelleAutor der Antwort codeBelt
InformationsquelleAutor der Antwort SoEzPz
hier ist das jsfiddle Sie können spielen, mit diesen zu testen
http://jsfiddle.net/5n84w/2/
``
``
InformationsquelleAutor der Antwort Chetan Ankola
Ergebnis:
Alternativ
.match(/\w+/g)
eher als.split('-')
-- je nachdem, was Sie tun möchten, in Rand-Fällen, wie dem "dies-ist-ein-test".InformationsquelleAutor der Antwort ninjagecko
Andere Methode mit reduzieren:
InformationsquelleAutor der Antwort Lior Erez
InformationsquelleAutor der Antwort Felix Xilef