Kako v javascriptu spremenim prvo črko v nizu v veliko začetnico?

Kako lahko prvo črko v nizu spremenim v veliko črko, vendar ne spremenim velikosti drugih črk?

Na primer:

  • "to je test" -> "To je test"
  • "Eifflov stolp" -> "Eifflov stolp"
  • "/index.html" -> "/index.html"
function capitalizeFirstLetter(string) {
    return string.charAt(0).toUpperCase() + string.slice(1);
}

Nekateri drugi odgovori spreminjajo String.prototype (tudi ta odgovor je to počel), vendar bi to odsvetoval zaradi vzdržljivosti (težko je ugotoviti, kje je funkcija dodana v prototype, in lahko povzroči konflikte, če druga koda uporablja isto ime / če brskalnik v prihodnosti doda lastno funkcijo z istim imenom).

Komentarji (32)

Tukaj je bolj objektno usmerjen pristop:

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

Funkcijo pokličete na naslednji način:

"hello world".capitalize();

Pričakovani rezultat je:

"Hello world" 
Komentarji (21)

Tu je funkcija ucfirst() (kratica za "velika začetna črka"):

function ucfirst(str) {
    var firstLetter = str.substr(0, 1);
    return firstLetter.toUpperCase() + str.substr(1);
}

Niz lahko napišete z veliko začetnico tako, da pokličete ucfirst("some string") -- na primer,

ucfirst("this is a test") --> "This is a test"

Deluje tako, da razdeli niz na dva dela. V prvi vrstici izvleče prvoLetter, nato pa v drugi vrstici prvoLetter napiše z veliko začetnico tako, da pokliče firstLetter.toUpperCase() in ga poveže s preostalim nizom, ki ga poišče s klicem str.substr(1).

Morda se vam zdi, da to ne bo uspelo pri praznem nizu, in v jeziku, kot je C, bi bilo treba to predvideti. Vendar pa v jeziku JavaScript, ko vzamete podrejeni niz praznega niza, dobite nazaj samo prazen niz.

Komentarji (4)