我正在嘗試構建一個JavaScript initcap函數,它將每個單詞中的第一個字母正確地轉換爲大寫,並將其他字母轉換爲小寫。JavaScript中的初始化
所有的例子,我發現將第一字符這是不正確,如: 喬·史密斯(CEO)應轉化爲喬·史密斯(CEO),而不是張三(C EO)
CSS變換不是一個選項,因爲該值將返回給服務器。
可能使用正則表達式是要走的路,但我不是這方面的專家。任何幫助?
我正在嘗試構建一個JavaScript initcap函數,它將每個單詞中的第一個字母正確地轉換爲大寫,並將其他字母轉換爲小寫。JavaScript中的初始化
所有的例子,我發現將第一字符這是不正確,如: 喬·史密斯(CEO)應轉化爲喬·史密斯(CEO),而不是張三(C EO)
CSS變換不是一個選項,因爲該值將返回給服務器。
可能使用正則表達式是要走的路,但我不是這方面的專家。任何幫助?
小編輯的答案,這個副本,如果你讀了意見接受的答案,你會發現有你的答案:
function toTitleCase(str)
{
return str.replace(/([^\W_]+[^\s-]*) */g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
}
另一個版本基於OK前瞻:
joe smith(c e o)'.replace(/\b[a-z](?=(?:[a-z]|\W|$))/g, function($0) {
return $0.toUpperCase();})
//=> "Joe Smith(C E O)"
我敢打賭腳本工作正常。如果我不得不猜測,他們轉換第一個***字符***不一定是第一個字母。 (即在你上面的例子中,腳本可能試圖轉換'('而不是'c')。添加一個檢查以確保第一個字符是來自「A-Z」的字符,然後將其大寫。 – War10ck