在JavaScript中,有多種方法可以將字符串的第一個字符轉換為大寫。學習這些方法,並找出哪一種方法是最好的,純粹使用JavaScript。

將字符串的第一個字符轉換為大寫是一個常見的字符串操作之一:將其第一個字母轉為大寫,保持字符串的其餘部分不變。

最好的方法是通過兩個函數的組合來實現。

一個函數用於將第一個字符轉為大寫,第二個函數用於切割字符串並從第二個字符開始返回。

像這樣:

const name = 'flavio'
const nameCapitalized = name.charAt(0).toUpperCase() + name.slice(1)

你可以將這個字符串轉換為大寫的方法提取到一個函數中,該函數還檢查傳入的參數是否為字符串,如果不是則返回空字符串:

const capitalize = (s) => {
 if (typeof s !== 'string') return ''
 return s.charAt(0).toUpperCase() + s.slice(1)
}

capitalize('flavio') //'Flavio'
capitalize('f') //'F'
capitalize(0) //''
capitalize({}) //''

你也可以使用字符串索引(在較舊的IE版本中不支持)來代替charAt(0)s[0]

在線上有一些解決方案也可以將字符串的第一個字母轉為大寫,它們將這個函數添加到String的原型上:

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

(我們使用常規函數來使用this - 箭頭函數在這種情況下會失敗,因為箭頭函數中的this不引用當前對象)

這個解決方案不是理想的,因為通常不建議編輯原型,而且這是一個比獨立函數慢得多的解決方案。

不要忘記,如果你只是想在Web頁面上以呈現的方式將第一個字母轉為大寫,CSS可能是一個更好的解決方案,只需將capitalize類添加到HTML段落中,並使用:

p.capitalize {
 text-transform: capitalize;
}