5172 Stimmen

Wie wird der erste Buchstabe einer Zeichenkette in JavaScript großgeschrieben?

Wie kann ich den ersten Buchstaben einer Zeichenkette in Großbuchstaben umwandeln, ohne die Großschreibung der anderen Buchstaben zu ändern?

Zum Beispiel:

  • "this is a test" "This is a test"
  • "the Eiffel Tower" "The Eiffel Tower"
  • "/index.html" "/index.html"

2voto

user28864 Punkte 3205

Ich habe versucht, dasselbe zu tun (das heißt; Großschreibung des ersten Buchstabens in einer Zeichenfolge, während es getippt wird) mit jQuery. Ich suchte alle durch das Web für die Antwort, aber konnte es nicht finden. Allerdings war ich in der Lage, einen Workaround zu bekommen, indem ich die on() Funktion in jQuery wie folgt:

$("#FirstNameField").on("keydown",function(e){
    var str = $("#FirstNameField").val();
    if(str.substring()===str.substring(0,1)){
        $("#FirstNameField").val(str.substring(0,1).toUpperCase());
    } 
});

Mit dieser Funktion wird der erste Buchstabe großgeschrieben, während der Datenerfasser kontinuierlich tippt.

2voto

mfq Punkte 1355

Verwenden Sie dieses Modul von Node.js, das http://stringjs.com/ Paket, um Ihre Zeichenfolge groß zu schreiben:

var S = require('string');
S('jon').capitalize().s; //'Jon'
S('JP').capitalize().s; //'Jp'

2voto

pizzamonster Punkte 921

Die aktuell gewählte Antwort ist richtig, allerdings wird die Länge der Zeichenkette vor der Großschreibung des ersten Zeichens nicht gekürzt oder überprüft.

String.prototype.ucfirst = function(notrim) {
    s = notrim ? this : this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ');
    return s.length > 0 ? s.charAt(0).toUpperCase() + s.slice(1) : s;
}

Setzen Sie das Argument notrim, um zu verhindern, dass die Zeichenkette vorher abgeschnitten wird:

'pizza'.ucfirst()         => 'Pizza'
'   pizza'.ucfirst()      => 'Pizza'
'   pizza'.ucfirst(true)  => '   pizza'

2voto

Irfan Syed Punkte 119

Dies hat die gleiche Wirkung:

var newStr = string.slice(0,1).toUpperCase() + string.slice(1);

2voto

Bekim Bacaj Punkte 5223

Dieser toleriert mögliche führende Leerzeichen und verfehlt nicht das Ziel des ersten Buchstabens in einer Zeichenkette. Daher könnte sie die bereits vorhandenen guten Lösungen im Thread verbessern.

str = "   the Eifel Tower";
str.replace(/\w/, str.match(/\w/)[0].toUpperCase());
>> "   The Eifel Tower";

!But, führt zu einem 'weichen' Fehler, wenn es gegen eine leere Zeichenkette ausgeführt wird. Um diesen möglichen Fehler oder die unnötige Verarbeitung einer leeren Zeichenkette oder einer Zahl zu vermeiden, kann eine ternäre bedingte Schutzfunktion verwendet werden:

+str!=+str ?  str.replace(/\w/, str.match(/\w/)[0].toUpperCase()) : str;

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