Was ist der beste Ansatz, um Wörter in einer Zeichenfolge groß zu schreiben?
javascript
string
capitalization
vsync
quelle
quelle
text-transform:capitalize;
.Antworten:
quelle
'CHECK THIS OUT'.capitalize(true) -> "Check This Out"
. Mind-true
Parameter.Die kürzeste Implementierung zum Großschreiben von Wörtern innerhalb einer Zeichenfolge ist die folgende mit den Pfeilfunktionen von ES6:
ES5-kompatible Implementierung:
Der reguläre Ausdruck entspricht im Wesentlichen dem ersten Buchstaben jedes Wortes innerhalb der angegebenen Zeichenfolge und wandelt nur diesen Buchstaben in Großbuchstaben um:
Informationen zu Nicht-ASCII-Zeichen finden Sie stattdessen in dieser Lösung
Dieser reguläre Ausdruck entspricht dem ersten Buchstaben und jedem Nicht-Leerzeichen, dem ein Leerzeichen in der angegebenen Zeichenfolge vorangestellt ist, und wandelt nur diesen Buchstaben in Großbuchstaben um:
Eine nicht erfassende Gruppe hätte hier wie folgt verwendet werden können,
/(?:^|\s)\S/g
obwohl dasg
Flag in unserem regulären Ausdruck ohnehin keine Untergruppen beabsichtigt.Prost!
quelle
päijät-häme
wirdPäIjäT-HäMe
EisbäRen
ist zum Beispiel ein Ergebnis.Päijät-Häme
, aber zumindest in Chrome enthält Whitespace nicht den Bindestrich (-), sodass der zweite Teil des Namens nicht groß geschrieben wird. Kann als behoben werden/(^|\s|-)\S/g
.Ausgabe: "Dies ist die schlechteste Zeichenfolge aller Zeiten"
Aktualisieren:
Es scheint, dass diese Lösung meine ersetzt: https://stackoverflow.com/a/7592235/104380
quelle
Die Antwort von vsync funktioniert , solange Sie keine Buchstaben mit Akzent in der Eingabezeichenfolge haben.
Ich kenne den Grund nicht, aber anscheinend
\b
stimmen die in regulären Ausdrücken auch mit Akzentbuchstaben überein (getestet in IE8 und Chrome), sodass eine Zeichenfolge wie"località"
falsch in"LocalitÀ"
à
Großbuchstaben umgewandelt wird (der Buchstabe wird großgeschrieben, weil der reguläre Ausdruck denkt, dass es sich um eine Wortgrenze handelt).Eine allgemeinere Funktion, die auch mit Buchstaben mit Akzent funktioniert, ist diese:
Sie können es so verwenden:
quelle
" javascript".toCapitalize() -> " javascript"
Da Ihnen jeder die von Ihnen angeforderte JavaScript-Antwort gegeben hat, werde ich darauf hinweisen, dass die CSS-Eigenschaft
text-transform: capitalize
genau dies tut.Mir ist klar, dass dies möglicherweise nicht das ist, wonach Sie fragen - Sie haben uns keinen Kontext angegeben, in dem Sie dies ausführen -, aber wenn es nur zur Präsentation dient, würde ich definitiv die CSS-Alternative wählen.
quelle
John Resig (von jQuery) portierte ein von John Gruber geschriebenes Perl-Skript nach JavaScript. Dieses Skript wird intelligenter großgeschrieben, es werden keine kleinen Wörter wie "von" und "und" großgeschrieben.
Sie finden es hier: Titel Großschreibung in JavaScript
quelle
Verwenden von JavaScript und HTML
Grundsätzlich können Sie dies tun
string.capitalize()
und es wird jeder erste Buchstabe jedes Wortes groß geschrieben.Quelle: http://www.mediacollege.com/internet/javascript/text/case-capitalize.html
quelle
if (object.capitalize) {...} else {String.prototype.capitalize = function()....}
wo Objekt vom Typ istString
. Es ist also ganz einfach.Ivos Antwort ist gut, aber ich ziehe es vor, nicht mitzuhalten,
\w
da 0-9 und AZ nicht groß geschrieben werden müssen. Wir können diese ignorieren und nur auf az übereinstimmen.Es ist die gleiche Ausgabe, aber ich denke klarer in Bezug auf selbstdokumentierenden Code.
quelle
"Är Toaletten"
. Ihre Antwort, Jahre nachdem eine sehr gute Antwort gegeben wurde, trägt nicht zur Diskussion bei./\b\w/g
schlägt auch bei nicht englischen Buchstaben fehl. Nicht jeder befasst sich mit Unicode-Zeichen, und dies wird denjenigen helfen, die dies nicht wollen.Wenn Sie lodash in Ihrer JavaScript-Anwendung verwenden, können Sie _.capitalize verwenden :
quelle
Eine prägnante ES6-Methode könnte ungefähr so aussehen.
Dies setzt nur den ersten Buchstaben in Großbuchstaben und wirkt sich nicht auf den Rest des Satzes aus.
quelle
Dies sollte die meisten grundlegenden Anwendungsfälle abdecken.
Bearbeiten: Verbesserte Lesbarkeit der Zuordnung.
quelle
/\b\w/g
...Diese Lösung verwendet keinen regulären Ausdruck, unterstützt Zeichen mit Akzent und wird auch von fast jedem Browser unterstützt.
Verwendung:
Ausgabe:
quelle
Meine Lösung:
Beispiel:
quelle
'a áAA. bb . bbb .cc .d'.toCapital();
=>a Áaa. bb . Bbb .cc .d
http://www.mediacollege.com/internet/javascript/text/case-capitalize.html ist eine von vielen Antworten.
Google kann alles sein, was Sie für solche Probleme benötigen.
Ein naiver Ansatz wäre, die Zeichenfolge durch Leerzeichen zu teilen, den ersten Buchstaben jedes Elements des resultierenden Arrays in Großbuchstaben zu schreiben und wieder zusammenzufügen. Dies lässt die vorhandene Großschreibung in Ruhe (z. B. bleibt HTML HTML und wird nicht zu etwas Dummem wie HTML). Wenn Sie diesen Effekt nicht möchten, wandeln Sie die gesamte Zeichenfolge in Kleinbuchstaben um, bevor Sie sie aufteilen.
quelle
Dieser Code schreibt Wörter nach Punkt groß:
quelle
Ich mag es, mit einfachen Prozessen zu gehen. Ändern Sie zuerst die Zeichenfolge in Array, um das Iterieren zu vereinfachen, und ändern Sie dann mithilfe der Kartenfunktion jedes Wort so, wie Sie es möchten.
quelle
Jquery oder Javascipt bieten keine integrierte Methode, um dies zu erreichen.
Die CSS-Testtransformation (Texttransformation: großschreiben;) aktiviert die Daten der Zeichenfolge nicht wirklich, zeigt jedoch ein großgeschriebenes Rendering auf dem Bildschirm an.
Wenn Sie nach einer legitimeren Möglichkeit suchen, dies auf Datenebene mit einfachem VanillaJS zu erreichen, verwenden Sie diese Lösung =>
quelle
Benutze das:
quelle
Sie können Folgendes verwenden, um Wörter in einer Zeichenfolge groß zu schreiben:
quelle
Es gibt auch locutus: https://locutus.io/php/strings/ucwords/, der es so definiert:
quelle
Ich würde Regex für diesen Zweck verwenden:
quelle