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"

3voto

TarranJones Punkte 3796

Erstens wollte ich nur klarstellen, was "großschreiben" in diesem Zusammenhang bedeutet. " T seine S tring I s C apitalisiert" Zuverlässige Quelle

Wie Sie aus dem Beispiel ersehen können, ist dies nicht das, wonach der Auftraggeber sucht. Die Frage sollte lauten: "Wie mache ich den ersten Buchstaben einer Zeichenkette groß" ( String nicht großschreiben )

function ucfirst (str) {
    return typeof str != "undefined" ? (str += '', str[0].toUpperCase() + str.substr(1)) : '';
}

Erläutert

typeof str != "undefined" // Is str set
? // true
str += '' // Turns the string variable into a string
str[0].toUpperCase() // Get the first character and make it upper case
+ // Add
str.substr(1) // String starting from the index 1 (starts at 0)
: // false
''; // Returns an empty string

Dies funktioniert mit jedem Argument oder ohne Argument.

undefined         === ""
""                === ""
"my string"       === "My string"
null              === "Null"
undefined         === "";
false             === "False"
0                 === "0"
true              === "True"
[]                === ""
[true,0,"",false] === "True,0,,false"

3voto

Eduardo Cuomo Punkte 15791
function capitalizeEachWord(str) {
    return str.replace(/\w\S*/g, function(txt) {
        return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
    });
}

document.write(capitalizeEachWord('foo BAR God bAD'));

3voto

Timur Usmanov Punkte 89

Eine kleine Verbesserung - jedes Wort in Großbuchstaben.

String.prototype.toTitleCase = function(){
    return this.replace(/\b(\w+)/g, function(m,p){ return p[0].toUpperCase() + p.substr(1).toLowerCase() });
}

var s = 'heLLo, wOrLD!';
console.log(s.toTitleCase()); // Hello, World!

3voto

Aditya Joshi Punkte 249

Einzeiler ("inputString kann auf eine beliebige Zeichenfolge gesetzt werden"):

inputString.replace(/.{1}/, inputString.charAt(0).toUpperCase())

3voto

victorhazbun Punkte 714

Diese ist einfach

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

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