عدّاد الكلمات والأحرفWord & Character Counter
عدّ الكلمات والأحرف والجمل والفقرات ووقت القراءة وكثافة الكلمات وحدود المنصات لحظة الكتابة. بدقة تدعم العربية والإيموجي، دون تسجيل. Count words, characters, sentences, paragraphs, reading time, keyword density and platform limits as you type. Accurate for Arabic and emoji, with no signup.
🔄
📱
🎯
🔑
كيف تُحسب النتيجة؟How the result is calculated
الكلمات: نستخدم Intl.Segmenter المبني على معيار Unicode UAX #29 لتحديد حدود الكلمات، بدل التقسيم عند المسافات. لذلك تُقسَّم العربية واليابانية والصينية تقسيمًا سليمًا بدل اعتبارها كلمة طويلة واحدة، ولا تُحسب علامات الترقيم كلمات. ويستثني متوسط طول الكلمة وأطول كلمة الروابط وعناوين البريد. وتُعدّ الروابط وعناوين البريد والكلمات المنقّطة (مثل p.m. و3.5 وexample.com) كلمة واحدة لكل منها. وهذا يزيل أهم أسباب اختلاف النتيجة بين المتصفحات، مع بقاء فروق طفيفة ممكنة في اللغات التي تعتمد على قاموس (الصينية واليابانية والتايلاندية). وكلمتان ملتصقتان بنقطة دون مسافة (مثل end.Start) تُعدّان كلمة واحدة.
الأحرف: تُعدّ بوحدة الـ grapheme cluster أي الحرف كما يراه القارئ. فالإيموجي المركب (مثل 👨👩👧) أو الحرف مع تشكيله يُحسب حرفًا واحدًا، بينما يعدّه string.length في JavaScript عدة أحرف.
الجمل والفقرات: الجمل وفق حدود UAX #29 للجمل، مع تصحيحين: لا يُحسب رقم القائمة (1. 2.) جملةً مستقلة، ولا تُقطع الجملة عند اختصارات شائعة مثل Dr. وMr.. الفقرة كتلة نصية تفصلها سطر فارغ.
الفرق عن Word: يعدّ Word كل ما بين مسافتين كلمة، فتصبح dev-1.4.8 كلمة واحدة، بينما نفصلها وفق Unicode إلى dev و1.4.8. اختر "مثل Word" أسفل المحرر لتحصل على عدّ مطابق له.
زمن القراءة والإلقاء: الزمن = عدد الكلمات ÷ السرعة (كلمة/دقيقة). الافتراضي 238 للقراءة الصامتة، وهو متوسط منشور للنصوص غير الروائية الإنجليزية (Brysbaert، 2019)، و150 للإلقاء. تختلف السرعة بين اللغات والقراء، لذلك يمكنك تعديلها، والنتيجة تقدير.
الكثافة: كثافة العبارة = تكرارها ÷ إجمالي الكلمات × 100. عند تفعيل تجاهل الحشو تُستبعد الكلمات الشائعة، وتُستبعد العبارات التي تبدأ أو تنتهي بكلمة حشو. تظهر العبارات من كلمتين أو أكثر عند تكرارها مرتين فأكثر، وتُستبعد الأرقام المنفردة من قائمة الكلمات المفردة.
حدود المنصات: يُحسب حد X وفق قواعد الوزن في مكتبة X المفتوحة twitter-text: الرابط = 23، والحروف داخل النطاق U+0000–U+10FF (ويشمل اللاتينية والعربية والسيريلية واليونانية والعبرية) = 1، وما خارجه كالصينية واليابانية والكورية والإيموجي = 2. رسائل SMS: ترميز GSM-7 بحد 160 (153 لكل جزء عند التقسيم)، وأي حرف خارجه (مثل العربية) يحوّل الرسالة إلى UCS-2 بحد 70 (67 لكل جزء).
Words: we use Intl.Segmenter, built on Unicode UAX #29, to find word boundaries instead of splitting on spaces. Arabic, Japanese and Chinese are therefore segmented properly instead of being treated as one long word, and punctuation is not counted as words. Average word length and longest word exclude links and email addresses. Each link, email address and dotted token (such as p.m., 3.5 or example.com) counts as one word. This removes the main source of differences between browsers, though small differences remain possible for languages that rely on dictionaries (Chinese, Japanese, Thai). Two words joined by a dot with no space (like end.Start) count as one.
Characters: counted as grapheme clusters, meaning a character as the reader sees it. A composed emoji (like 👨👩👧) or a letter with its diacritics counts as one, whereas JavaScript’s string.length counts several.
Sentences and paragraphs: sentences follow UAX #29 sentence boundaries with two corrections: a list number (1. 2.) is not counted as its own sentence, and sentences are not split at common abbreviations such as Dr. and Mr.. A paragraph is a block separated by a blank line.
Difference from Word: Word counts anything between two spaces as a word, so dev-1.4.8 is one word, while we split it per Unicode into dev and 1.4.8. Choose “Like Word” under the editor to get a count that matches it.
Reading and speaking time: time = words ÷ rate (words per minute). The defaults are 238 for silent reading, a published mean for English non-fiction (Brysbaert, 2019), and 150 for speaking. Rates vary by language and reader, so you can edit them, and the result is an estimate.
Density: a phrase’s density = occurrences ÷ total words × 100. With stop-word filtering on, common words are excluded, and phrases that start or end with a stop word are dropped. Phrases of two or more words appear only when repeated at least twice, and standalone numbers are excluded from the single-word list.
Platform limits: X is counted with the weighting rules of X’s open-source twitter-text library: a link = 23; characters inside U+0000–U+10FF (which covers Latin, Arabic, Cyrillic, Greek and Hebrew) = 1; anything outside it, such as Chinese, Japanese, Korean, and emoji = 2. SMS uses GSM-7 with a 160 limit (153 per part when split); any character outside it, such as Arabic, switches the message to UCS-2 with a limit of 70 (67 per part).
http:// أو https:// (مثل example.com) لا تُكتشف روابطَ في حد X، فتُحسب بحروفها.
Counting methods differ slightly between platforms (especially with emoji), so treat platform limits other than X and SMS as approximate. “Recommended” limits are not official constraints. Search engines publish no ideal keyword-density percentage; use density only to spot over-repetition. Links without http:// or https:// (such as example.com) are not detected as links for the X limit, so they are counted by their characters.
أسئلة شائعةFAQ
لماذا يختلف عدد الكلمات هنا عن Word؟Why does the word count differ from Word?
يعدّ Word كل ما بين مسافتين كلمة، أما نحن فنفصل وفق Unicode، فتُعدّ الكلمات المركبة بواصلة (مثل dev-1.4.8) كلمتين. غيّر طريقة العدّ إلى "مثل Word" ليتطابق الناتج.Word counts anything between two spaces as a word, while we split per Unicode, so hyphenated tokens (like dev-1.4.8) count as two. Switch the counting mode to “Like Word” to match.
لماذا قد يختلف عدد الأحرف هنا عن أدوات أخرى أو string.length؟Why might the character count differ from other tools or string.length?
لأننا نعدّ الحرف كما يراه القارئ (grapheme). الإيموجي المركب والحروف المشكّلة (مثل «ً» و«ّ») تُحسب مرة واحدة، بينما تعدّها أدوات أخرى وحدات مستقلة. ستجد الرقم المقابل في الإحصاءات التفصيلية باسم «نقاط الترميز».Because we count characters as the reader sees them (graphemes). Composed emoji and marks such as Arabic tanween or shadda count once, while other tools count them as separate units. The matching figure appears in the detailed stats as “Code points”.
هل يُرسل نصي إلى خادم؟Is my text sent to a server?
لا. كل المعالجة تتم داخل متصفحك، ولا يُخزَّن النص. تُحفظ فقط إعداداتك (الأهداف وسرعة القراءة وطريقة عدّ الكلمات) على جهازك. تُحمَّل خطوط الصفحة من Google Fonts، لكن لا يُرسل إليها نصّك.No. All processing happens in your browser and the text is not stored. Only your settings (goals, reading rate and word-counting mode) are kept on your device. The page loads its fonts from Google Fonts, but your text is never sent there.
كيف يُحسب حد X؟How is the X limit calculated?
وفق قواعد الوزن الرسمية: الرابط يُحسب 23 بغض النظر عن طوله، والحروف اللاتينية والعربية بوزن 1، بينما الحروف الصينية واليابانية والكورية والإيموجي بوزن 2، والحد 280 وحدة موزونة.By the official weighting rules: a link counts as 23 regardless of length, Latin and Arabic letters weigh 1, while Chinese, Japanese, Korean characters and emoji weigh 2, with a limit of 280 weighted units.
لماذا تُقسَّم رسالة SMS العربية إلى أجزاء أقصر؟Why is an Arabic SMS split into shorter parts?
لأن الحروف العربية خارج مجموعة GSM-7، فتُرسل الرسالة بترميز UCS-2 الذي يتسع لـ 70 وحدة فقط (67 لكل جزء عند التقسيم) بدل 160.Arabic letters are outside the GSM-7 set, so the message is sent as UCS-2, which holds only 70 units (67 per part when split) instead of 160.


