Pertanyaan Bagaimana saya membuat huruf pertama dari huruf besar string di JavaScript?


Bagaimana saya membuat huruf pertama dari huruf besar string, tetapi tidak mengubah huruf apa pun dari huruf lain?

Sebagai contoh:

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

2960
2018-06-22 08:25


asal


Jawaban:


function capitalizeFirstLetter(string) {
    return string.charAt(0).toUpperCase() + string.slice(1);
}

Beberapa jawaban lainnya dimodifikasi String.prototype (jawaban ini digunakan juga), tetapi saya akan menyarankan untuk melawan ini sekarang karena rawatan (sulit untuk mencari tahu di mana fungsi tersebut ditambahkan ke prototype dan dapat menyebabkan konflik jika kode lain menggunakan nama yang sama / browser menambahkan fungsi asli dengan nama yang sama di masa mendatang).


4721
2018-06-22 08:30



Pendekatan yang lebih berorientasi objek:

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

Lalu:

"hello world".capitalize();  =>  "Hello world" 

1194
2017-07-20 15:51



Di CSS:

p:first-letter {
    text-transform:capitalize;
}

408
2017-07-17 14:06



Berikut ini adalah versi singkat dari jawaban populer yang mendapat huruf pertama dengan memperlakukan string sebagai array:

function capitalize(s)
{
    return s[0].toUpperCase() + s.slice(1);
}

Memperbarui:

Menurut komentar di bawah ini tidak berfungsi di IE 7 atau di bawah.

Perbarui 2:

Menghindari undefined untuk string kosong (lihat komentar @ njzk2 di bawah ini), Anda dapat memeriksa string kosong:

function capitalize(s)
{
    return s && s[0].toUpperCase() + s.slice(1);
}

235
2017-08-28 23:03



Jika Anda tertarik dengan kinerja beberapa metode berbeda yang diposkan:

Berikut adalah metode tercepat berdasarkan tes jsperf ini (dipesan dari tercepat ke paling lambat).

Seperti yang Anda lihat, dua metode pertama pada dasarnya sebanding dalam hal kinerja, sedangkan mengubah String.prototype sejauh ini yang paling lambat dalam hal kinerja.

// 10,889,187 operations/sec
function capitalizeFirstLetter(string) {
    return string[0].toUpperCase() + string.slice(1);
}

// 10,875,535 operations/sec
function capitalizeFirstLetter(string) {
    return string.charAt(0).toUpperCase() + string.slice(1);
}

// 4,632,536 operations/sec
function capitalizeFirstLetter(string) {
    return string.replace(/^./, string[0].toUpperCase());
}

// 1,977,828 operations/sec
String.prototype.capitalizeFirstLetter = function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
}

enter image description here


134
2017-11-14 03:26



Untuk kasus lain saya membutuhkannya untuk memanfaatkan huruf pertama dan huruf kecil sisanya. Kasus-kasus berikut membuat saya mengubah fungsi ini:

//es5
function capitalize(string) {
    return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
}
capitalize("alfredo")  // => "Alfredo"
capitalize("Alejandro")// => "Alejandro
capitalize("ALBERTO")  // => "Alberto"
capitalize("ArMaNdO")  // => "Armando"

// es6 using destructuring 
const capitalize = ([first,...rest]) => first.toUpperCase() + rest.join('').toLowerCase();

128
2017-07-19 18:17



Berikut ini solusi terbaiknya:

Solusi Pertama Di CSS:

p {
  text-transform: capitalize;
}

Solusi kedua :

function capitalizeFirstLetter(string) {
    return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
}

Anda juga bisa menambahkannya ke String.prototype sehingga Anda dapat menghubungkannya dengan metode lain:

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

dan gunakan seperti ini:

'string'.capitalizeFirstLetter() // String

Solusi Ketiga:

function ucFirstAllWords( str )
{
    var pieces = str.split(" ");
    for ( var i = 0; i < pieces.length; i++ )
    {
        var j = pieces[i].charAt(0).toUpperCase();
        pieces[i] = j + pieces[i].substr(1).toLowerCase();
    }
    return pieces.join(" ");
}

106
2018-02-16 05:30



var string = "hello world";
string = string.charAt(0).toUpperCase() + string.slice(1);
alert(string);

62
2017-07-17 06:23



Gunakan huruf besar pada huruf pertama dari semua kata dalam string:

function ucFirstAllWords( str )
{
    var pieces = str.split(" ");
    for ( var i = 0; i < pieces.length; i++ )
    {
        var j = pieces[i].charAt(0).toUpperCase();
        pieces[i] = j + pieces[i].substr(1);
    }
    return pieces.join(" ");
}

58
2017-11-30 17:16