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"

8voto

Rúnar Berg Punkte 3763

Unicode- und Gebietsschema-bewusst

Verwendung aktueller Sprachfunktionen:

function capitalize([firstLetter, ...rest]) {
  return [firstLetter.toLocaleUpperCase(), ...rest].join('');
}

console.log(capitalize('foo bar'));
console.log(capitalize(''))
console.log(capitalize(''));

// Title Case
console.log(
  'Title Case:',
  'foo bar'
    .split(/\s+/)
    .map(capitalize)
    .join(' '),
);

Wir akzeptieren eine destrukturiert String als einziger Parameter [firstLetter, ...rest] und weist das erste Zeichen der Variablen firstLetter und ein Array für den Rest der Zeichen erhalten ( ...rest ), die an den rest Variable. Z.B. für die Zeichenkette lorem ipsum sollte dies so aussehen:

capitalize('lorem ipsum');
// firstLetter = 'l'
// rest = ['o', 'r', 'e', 'm', ' ', 'i', 'p', 's', 'u', 'm'];

Jetzt müssen wir nur noch eine Version des ersten Buchstabens in Großbuchstaben voranstellen firstLetter.toLocaleUpperCase() zum rest Array - unter Verwendung der Spread-Operator -und fügen Sie das resultierende Array zu einer Zeichenkette mit .join('')

8voto

giovaniZanetti Punkte 426

Verwendung einer Pfeilfunktion:

const capitalize = string => string[0].toUpperCase() + string.slice(1)

8voto

Manuel del Pozo Punkte 129

Elegant

const capitalize = ([firstChar, ...rest]) => `${firstChar.toUpperCase()}${rest.join('')}`;

8voto

daronwolff Punkte 1858

Verwendung von Prototypen

String.prototype.capitalize = function () {
    return this.charAt(0) + this.slice(1).toLowerCase();
  }

oder Funktionen verwenden

function capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
}

8voto

Mradul Pandey Punkte 2038

Es gibt mehrere Möglichkeiten, dies zu tun, probieren Sie einige aus

var lower = 'the Eiffel Tower';
var upper = lower.charAt(0).toUpperCase() + lower.substr(1);

Und wenn Sie mit regulären Ausdrücken vertraut sind, können Sie die Dinge auf diese Weise erledigen:

var upper = lower.replace(/^\w/, function (chr) {
  return chr.toUpperCase();
});

Und Sie können sogar noch einen Schritt weiter gehen und eine modernere Syntax verwenden:

const upper = lower.replace(/^\w/, c => c.toUpperCase());

Dies wird sich auch um negative Szenarien kümmern, wie im Beispiel erwähnt, z.B. Wörter, die mit Sonderzeichen beginnen, wie !@#$%^&*()}{{[];':",.<>/? .

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