將一段文字中的每個單字大寫,意思就是將每個單字的第一個字母提升為大寫,其餘字母保持不變,產生像「Hello World」這種常見的格式,也是標題、書名和 UI 標籤會使用的形式。這種轉換通常稱為 Title Case(標題大小寫),也是搜尋查詢「capitalize each word」最常見的解讀方式。現代的大小寫轉換工具可以從一次貼上產生 Title Case 以及另外九種大小寫樣式:UPPERCASE、lowercase、Sentence case、camelCase、PascalCase、snake_case、kebab-case、CONSTANT_CASE,以及一種交替變化的 aLtErNaTiNg 樣式,因此您不需要為標題和變數名稱分別使用不同的工具。這種「貼上一次、輸出多種」的工作流程很重要,因為手動將長段落中的每個單字大寫既繁瑣又容易出錯,而手動將 snake_case 變數重新格式化為 camelCase 甚至更糟糕:只要漏掉一個分隔界,程式碼就會出錯。只需輸入一次並閱讀十種變體,您就能同時省下手動操作和不一致的問題。

「Capitalize Each Word」真正的含義
這個詞彙聽起來簡單,但實際上涵蓋了三種不同的意圖,而您擁有哪一種意圖決定了該複製哪種輸出樣式。第一種意圖是最字面的:將每個單字的第一個字母大寫,其餘字母改為小寫,因此「the quick brown fox」會變成「The Quick Brown Fox」。這就是 Title Case,適用於標題、文章標題、歌曲名稱、書本章節以及每個重要單字都大寫的產品卡片。
第二種意圖是 Sentence case(句首大寫),只有每個句子的第一個字母會大寫。「the quick brown fox. the lazy dog.」會變成「The quick brown fox. The lazy dog.」。Sentence case 是內文、部落格段落、UI 標籤、電子郵件訊息以及任何讀者從頭到尾閱讀的散文所使用的正確慣例。在行文散文中將每個單字都大寫會顯得厚重並可能影響可讀性,這也是為什麼大多數風格指南將 Title Case 保留給標題,而其他內容則使用 Sentence case。
第三種意圖是程式設計相關的:使用您所用語言的大小寫規則,將變數、函式或類別名稱中的每個單字大寫。「the quick brown fox」在 JavaScript 中可能變成 theQuickBrownFox,作為類別名稱則變成 TheQuickBrownFox,在 Python 中變成 the_quick_brown_fox,作為 CSS 類別或 URL slug 則變成 the-quick-brown-fox,或者作為環境常數變成 THE_QUICK_BROWN_FOX。轉換的概念相同,都是先拆分成單字再將每個單字大寫,但連接字元改變了最終的意義。
Title Case 與 Sentence case:選擇正確的那一個
對於寫作者來說,在 Title Case 和 Sentence case 之間做選擇是最常見的大小寫決策,而其規則比大多數風格指南說明的更簡單。Title Case 適用於標題、頁面標頭和簡短標籤:部落格文章標題、導覽項目、按鈕文字和投影片標題。Sentence case 適用於行文散文:段落、圖說、列表項目、錯誤訊息和產品描述。在 Title Case 中,大多數風格指南會將冠詞、連接詞和短介詞保持小寫(「The Lord of the Rings」而非「The Lord Of The Rings」),但在一般日常的線上使用中,簡單的「capitalize each word」形式已廣被接受。
如果您不確定需要哪一種,可以將文字貼到 大小寫轉換工具,並將兩個版本並排閱讀。當每個單字都大寫時,標題看起來就對了;當只有句首大寫時,段落看起來就對了。同樣的輸入在某一種樣式中可能看起來錯誤,在另一種中卻是正確的,同時看到兩者就能消除猜測。
| 寫作樣式 | 範例輸出 | 最適用於 |
|---|---|---|
| UPPERCASE | HELLO WORLD | 強調、標示、警告標籤 |
| lowercase | hello world | 平靜語氣、修正誤按 Caps Lock 的結果 |
| Title Case | Hello World | 標題、文章標題、簡短標籤 |
| Sentence case | Hello world | 內文、段落、UI 字串 |
| aLtErNaTiNg | HeLlO WoRlD | 裝飾性或趣味性的文字 |
命名慣例:按照您語言的規則將每個單字大寫
在程式設計中,將每個單字大寫並非裝飾用途,而是語法的一部分。大多數語言會拒絕像 useraccountid 這樣的名稱,因為無法辨識單字界線,但卻能順利編譯 userAccountId,因為 camelCase 讓三個單字一目了然。您最常會遇到的五種慣例是:用於 JavaScript 和 Java 變數的 camelCase、用於類別名稱和 React 元件的 PascalCase、用於 Python 變數和 SQL 欄位名稱的 snake_case、用於 URL 和 CSS 類別的 kebab-case,以及用於環境變數和其他編譯期常數的 CONSTANT_CASE。
手動混淆這些慣例是小錯誤最常見的來源。將 snake_case 名稱不小心貼成 camelCase 雖然可以編譯,但會被視為一長串單字;將 CONSTANT_CASE 常數不小心打成 camelCase 則會變成完全不同的變數;kebab-case 的 URL slug 如果混入了底線,就無法再對應到正確的路由。避免這些錯誤的可靠方法是將原始名稱貼到大小寫轉換工具,然後每次都複製符合您程式碼庫期望的變體。
| 命名樣式 | 範例輸出 | 典型用途 |
|---|---|---|
| camelCase | helloWorld | JavaScript 和 Java 的變數與函式 |
| PascalCase | HelloWorld | 類別名稱、React 元件、型別名稱 |
| snake_case | hello_world | Python 變數、SQL 欄位名稱 |
| kebab-case | hello-world | URL slug、CSS 類別、檔案名稱 |
| CONSTANT_CASE | HELLO_WORLD | 環境變數、編譯期常數 |
從「Capitalize Each Word」開始的常見工作
幾乎每一個文字重新格式化的工作最終都會以某種形式歸結為「capitalize each word」。修正從 PDF 複製貼上後變成全小寫的標題。將 CSV 標頭欄位從 Title Case 重新命名為資料庫所需的 snake_case。將部落格標題轉換為 kebab-case 的 URL slug。將 JSON 中的 API 欄位名稱從 camelCase 轉換為 SQL INSERT 用的 snake_case。將「welcome to the team」轉換為投影片用的 Title Case 橫幅。將因為 Caps Lock 而變成全大寫的吵雜文字改為小寫。將一整列產品名稱標準化,使每個名稱都以大寫字母開頭。一旦您能從一次貼上中看到全部十種樣式,每項工作都變成一行指令就能完成的事。
一個更細微的用途是重新格式化大小寫錯誤的人名、產品名稱或品牌名稱。貼上「ACME corporation」並同時閱讀 Title Case(「Acme Corporation」)和 Sentence case(「Acme corporation」),您就能立即判斷哪一個符合官方品牌規範。同樣的邏輯也適用於轉換環境變數、標準化 commit 訊息,以及為線框圖準備佔位文字(其中每個標題都必須以大寫字母開頭)。
如何一次將每個單字大寫(以及其他九種樣式)
- 在瀏覽器中開啟大小寫轉換工具。
- 在頁面頂部的輸入框中輸入或貼上您的文字。
- 立即在輸入框下方閱讀產生的十種輸出變體:Title Case、UPPERCASE、lowercase、Sentence case、camelCase、PascalCase、snake_case、kebab-case、CONSTANT_CASE 以及交替樣式。
- 並排比較這些變體,並挑選符合您用途的那一個。
- 點選該結果旁的「複製」按鈕將其放入剪貼簿,然後貼到您需要的地方。
由於所有轉換都在您的瀏覽器本地執行,這個工具可以離線運作,處理大量貼上時不需要往返伺服器,也不會上傳您輸入的內容。當您要重新格式化內部變數名稱、合約草稿或任何不想送到第三方的內容時,這點非常重要。
為什麼界線偵測對混合輸入很重要
「capitalize each word」困難的部分不是大小寫本身,而是在混合分隔符的輸入中找出單字界線。一個天真的工具僅僅將底線替換為連字號,可以乾淨地將 snake_case 轉換為 kebab-case,但遇到像 fooBar_baz-qux 這類輸入就會卡住,因為沒有空格可以分割。可靠的大小寫轉換工具會先對輸入重新進行權杖化:它在空格、底線、連字號和標點符號處分割,同時也偵測 camelCase 和 PascalCase 的界線,因此 fooBar_baz-qux 無論以哪種樣式輸入,都能正確地被識別為四個單字(foo、Bar、baz、qux)。
這種重新權杖化也能正確處理數字和縮寫字。order66 會被視為單一權杖,不會在數字處切開。HTMLParser 會在縮寫字界線處被識別為兩個單字(HTML、Parser),因此它會轉換為 snake_case 的 html_parser 以及 camelCase 的 htmlParser,而不是 html_parser_r 或 h_t_m_l_parser。已經以全大寫形式出現的縮寫字密集識別碼(例如 SNAKE_CASE_CONSTANT)也能乾淨地標準化為 camelCase,因為每個單字在被重新調整大小寫之前都會先被化簡為單一標準形式。
實際上的結果是,同樣的輸入永遠會產生同樣的輸出。如果您正在批次處理一整批變數名稱、重新格式化一整欄資料,或從一整欄標題產生一整列 URL slug,那麼決定論(determinism)正是讓結果從第一列到最後一列都保持一致的原因。