字數統計工具
即時統計文字的字元數、詞數、行數、段落數等資訊
基本統計
結構統計
閱讀預估
什麼是字數統計?
字數統計工具用於即時計算文字的各種統計資料,包括字元數、單詞數、行數等。無論您是在寫文章、論文、程式碼註釋還是社交媒體內容,這個工具都能幫助您快速瞭解文字的基本資訊。本工具支援中英文混合統計,能夠智慧識別中文字元和英文單詞,並分別進行計數。同時還提供閱讀時間預估,幫助您瞭解讀者需要多長時間讀完您的內容。 用於發布或多語內容時,應檢查語言、字元集、上下文和特殊情況後再重用。
使用方式
基本操作
- 在左側文字方塊中輸入或貼上文字
- 右側面板會即時更新統計資訊
- 依需求調整選項(標點符號、換行等)
- 隨時可清除、貼上或複製文字
計算規則
- 總字元數:包含空格、標點符號和換行的所有字元
- 中文字數:計算所有中日韓(CJK)字元
- 英文字數:計算由字母組成的單字
- 段落數:以空白行分隔的非空文字區塊
- 閱讀速度:中文每分鐘 350 字元,英文每分鐘 225 個單字
使用場景
技術原理
字數統計使用正規表達式按 Unicode 空白字元分割,拉丁文字適用類似 `text.trim().split(/\s+/).filter(Boolean)` 的規則,匹配 ASCII 空格、Tab、換行以及 Unicode 分隔符如 U+00A0(不間斷空格)和 U+2028(行分隔符)。此規則適用於英文、法文、德文等以空格分隔的語言,但對中文、日文和泰文等字間沒有空白的語言則不適用。因此 CJK 文字以字元計數:`[...text].length` 而非 `text.length`,因為展開運算子會迭代 Unicode 碼點,正確處理 U+FFFF 以上的代理對(例如從 U+20000 開始的 CJK 統一漢字擴展 B 區以及 U+1F300 以上的大部分表情符號)。CJK 字元類別本身透過 Unicode 屬性轉義 `/\p{Script=Han}/u` 偵測漢字。 JavaScript 字串的 `length` 屬性計算的是 UTF-16 碼元數,而非字元數,因此 `'👨👩👧'.length === 8` 而可見字形實際上是一個由三個表情符號經 U+200D 零寬度連接符組成的字素叢集。準確的計數使用 `Intl.Segmenter('en', { granularity: 'grapheme' })`,自 2023 年以來所有現代瀏覽器均支援;對於包括 CJK 在內的任何語言的詞級分割,`Intl.Segmenter(locale, { granularity: 'word' })` 遵循 Unicode 標準附件 #29,在可用時是最正確的選項。句子邊界透過 `[.!?…。!?]+` 後接空白或字串結尾偵測,段落則透過兩個或更多連續換行(`/\n\s*\n/`)偵測。 閱讀和朗讀時間預估應用已發表的閱讀速率常數。Brysbaert(2019)元分析指出成人英文非小說默讀速度為每分鐘 238 詞,這就是 225-250 wpm 成為常見 UI 預設值的原因。中文默讀速度平均為每分鐘 350-500 字元。口語速度較慢:TED 演講平均 163 wpm,有聲書旁白目標為 150-160 wpm。Twitter 的 280 字元限制透過其 `twitter-text` 函式庫將 CJK 和大部分表情符號計為 2 個加權字元,而區域指標對(國旗表情符號)在原始 `.length` 中計為 4 個 UTF-16 碼元。
- 空白字元分割:`text.trim().split(/\s+/).filter(Boolean)` 適用於拉丁文字;對 CJK 和泰文無效,因為這些語言沒有詞間空格
- CJK 字元計數使用 `[...text].length` 正確迭代 Unicode 碼點(處理 U+FFFF 以上的代理對,如擴展漢字和表情符號)
- `string.length` 返回 UTF-16 碼元數,而非字素數:一個 👨👩👧 家庭表情符號的 `.length === 8` 但是一個可見字元
- 最準確的分割方式:`Intl.Segmenter(locale, { granularity: 'word' | 'grapheme' })` 實作 Unicode 標準附件 #29
- 閱讀速度預設:英文默讀 225-250 wpm(Brysbaert 2019),中文默讀 350-500 字元/分鐘;口語旁白 150-160 wpm,TED 平均 163 wpm
- 句子分割:`[.!?…。!?]+\s+`;段落分割:`\n\s*\n`;行數:`text.split('\n').length`
- Twitter 將 CJK 和大部分表情符號計為 2 個字元對抗 280 限制(透過 `twitter-text`);國旗表情符號(區域指標對)在原始 UTF-16 中的 `.length === 4`
範例
簡短英文句子
輸入: Hello world, this is a test.
總字元數: 28
字元數(不含空白): 23
單字數: 6
句子數: 1
閱讀時間: ~2 秒(225 wpm)中英混合內容
輸入: Hello 你好世界, this is ToolAct.
總字元數: 28
中文字元: 4 (你好世界)
英文單字: 4 (Hello, this, is, ToolAct)
數字: 0在 280 字元限制內的 Twitter 貼文
草稿: Launching a new browser-only toolbox today — 112 dev tools,
zero uploads, zero tracking. Check it out at toolact.com.
總字元數:124 (未超過 Twitter 280 字元限制)
單字數: 22
行數: 2估算 5 分鐘演講長度
講稿: ~750 個英文單字
閱讀時間: 3 min 20 sec(225 wpm 默讀)
口說時間: 5 min 0 sec (150 wpm 演講語速)
段落數: 5 | 句子數:42檢查 SEO meta description 長度
標題: "ToolAct - 112 Online Developer Tools, Free and Private"
-> 56 個字元(Google 顯示約 60)
描述: "Format JSON, convert timestamps, generate cron expressions,
and run 100+ more dev tools right in your browser. No uploads."
-> 148 個字元(Google 顯示約 155)常見問題
這個計數器會統計哪些項目?
總字元數、不含空格的字元數、中文字數、英文單字數、數字、行數、段落數、句數,以及預估的閱讀/朗讀時間。所有數值會在你輸入或貼上時即時更新。
「英文單字」是怎麼定義的?
英文單字以空白分隔的字母序列為單位。中文字會透過 CJK Unicode 範圍偵測並逐字計算。數字與符號則會計入總字元數。
閱讀時間是怎麼算的?
預設以每分鐘 200 至 250 字計算,這是成人默讀的平均速度。朗讀速度較慢(約 150 wpm),快速瀏覽則較快(300 至 400 wpm)。這個數字只是粗略估計,實際時間會依內容密度與讀者經驗而異。
Emoji 與特殊字元也會計入嗎?
會計入,但要注意像 😀 這類 emoji 在 JavaScript 字串長度中會佔多個 UTF-16 代碼單位。本計數器以文字實際顯示出的可見字元為準。
為什麼行數和段落數不一樣?
行以單一換行(按一次 Enter)分隔,段落則以空白行(按兩次 Enter)分隔。文書處理器通常算段落,程式碼編輯器則算行。本頁同時顯示兩者,方便你依需求選用。
URL 與程式碼裡的字元也會被計算嗎?
會,所有非空白字元都計入。如果你只想統計純文章(排除 URL、程式碼區塊、引文),請先手動刪除再貼上。部分頁面提供「Markdown 感知」模式,可忽略語法字元。
我的文字會被上傳嗎?
不會。所有計算都在你的瀏覽器中進行,貼上的內容不會被傳送出去。