1423 Stimmen

JavaScript-String in Kleinbuchstaben umwandeln

Wie kann ich einen JavaScript-Zeichenfolgenwert so konvertieren, dass er nur aus Kleinbuchstaben besteht?

Ejemplo: "Your Name" à "your name"

1827voto

John Topley Punkte 110122
var lowerCaseName = "Your Name".toLowerCase();

436voto

Atif Aziz Punkte 35092

Verwenden Sie entweder toLowerCase ou toLocaleLowerCase Methoden der Zeichenfolge Objekt. Der Unterschied besteht darin, dass toLocaleLowerCase wird das aktuelle Gebietsschema des Benutzers/Hosts berücksichtigt. Gemäß § 15.5.4.17 der Spezifikation der ECMAScript-Sprache (ECMA-262) , toLocaleLowerCase

funktioniert genau so wie toLowerCase mit der Ausnahme, dass sein Ergebnis das richtige Ergebnis für die aktuelle Umgebung liefern soll, anstatt und nicht ein lokales-unabhängiges Ergebnis. Es gibt nur einen Unterschied in den wenigen Fällen (z.B. Türkisch), in denen die Regeln für diese Sprache im Widerspruch zu den regulären Unicode-Groß-/Kleinschreibungstypen kollidieren.

Beispiel:

var lower = 'Your Name'.toLowerCase();

Beachten Sie auch, dass die toLowerCase y toLocaleLowerCase Funktionen sind so implementiert, dass sie generisch auf jede Werttyp. Daher können Sie diese Funktionen auch auf nicht String Objekte. Dadurch wird eine automatische Konvertierung in einen Zeichenkettenwert vorgenommen, bevor die Groß- und Kleinschreibung der einzelnen Zeichen im resultierenden Zeichenkettenwert geändert wird. Zum Beispiel können Sie anwenden. toLowerCase direkt bei einem solchen Date:

var lower = String.prototype.toLowerCase.apply(new Date());

und das ist praktisch gleichbedeutend mit:

var lower = new Date().toString().toLowerCase();

Die zweite Form wird im Allgemeinen wegen ihrer Einfachheit und Lesbarkeit bevorzugt. In früheren Versionen des IE hatte die erste Form den Vorteil, dass sie mit einer null Wert. Das Ergebnis der Anwendung toLowerCase ou toLocaleLowerCase auf null würde ergeben null (und nicht eine Fehlerbedingung).

32voto

pkaeding Punkte 34458

Ja, jede Zeichenkette in JavaScript hat eine toLowerCase() Methode, die eine neue Zeichenfolge zurückgibt, die der alten Zeichenfolge in Kleinbuchstaben entspricht. Die alte Zeichenkette bleibt unverändert.

Sie können also etwas tun wie:

"Foo".toLowerCase();
document.getElementById('myField').value.toLowerCase();

21voto

sanilunlu Punkte 675

ToLocaleUpperCase() oder Kleinbuchstaben-Funktionen verhalten sich nicht so, wie sie es tun sollten. Zum Beispiel werden auf meinem System mit Safari 4, Chrome 4 Beta und Firefox 3.5.x Zeichenketten mit türkischen Zeichen falsch konvertiert. Die Browser reagieren auf navigator.language als "en-US", "tr" bzw. "en-US".

Aber es gibt keine Möglichkeit, die Accept-Lang-Einstellung des Benutzers im Browser abzurufen, soweit ich das finden konnte.

Nur Chrome macht mir Probleme, obwohl ich jeden Browser als tr-TR Gebietsschema bevorzugt konfiguriert habe. Ich denke, diese Einstellungen betreffen nur den HTTP-Header, aber wir können nicht über JavaScript auf diese Einstellungen zugreifen.

In der Mozilla-Dokumentation heißt es: "Die Zeichen in einer Zeichenkette werden in ... umgewandelt, wobei das aktuelle Gebietsschema berücksichtigt wird. Für die meisten Sprachen wird dies dasselbe Ergebnis liefern wie ...". Ich denke, das gilt für Türkisch, und es macht keinen Unterschied, ob es als en ou tr .

Im Türkischen sollte es "DNÇ" in "dinç" und "DINÇ" in "dnç" umwandeln oder umgekehrt.

17voto

ewwink Punkte 17016

Nur ein Beispiel für toLowerCase() , toUpperCase() und ein Prototyp für das noch nicht erhältliche toTitleCase() ou toProperCase() :

String.prototype.toTitleCase = function() {
  return this.split(' ').map(i => i[0].toUpperCase() + i.substring(1).toLowerCase()).join(' ');
}

String.prototype.toPropperCase = function() {
  return this.toTitleCase();
}

var OriginalCase = 'Your Name';
var lowercase = OriginalCase.toLowerCase();
var upperCase = lowercase.toUpperCase();
var titleCase = upperCase.toTitleCase();

console.log('Original: ' + OriginalCase);
console.log('toLowerCase(): ' + lowercase);
console.log('toUpperCase(): ' + upperCase);
console.log('toTitleCase(): ' + titleCase);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X