عدّاد الكلمات
هل تحتاج إلى عدّ موثوق لمقال أو تعليق أو موجز أو مسودة متعددة اللغات؟ تقيس هذه الأداة الكلمات والأحرف والأحرف بلا مسافات والجمل والفقرات ووقت القراءة التقديري في مرور واحد حتمي. تعمل القواعد نفسها مجانًا في متصفحك وعبر واجهة البرمجة، فلا تنحرف الأتمتة عمّا عاينته في الصفحة.
شغّل الأداة مجانًا
ما الذي يُحسب كلمة
تتكوّن الكلمات من حروف وأرقام يونيكود، لا من تقسيم ساذج على المسافات فقط. تبقى الاختصارات مثل don't والمركّبات مثل well-known كلمة واحدة، ويُحسب العدد العشري 3.14 كلمة واحدة. لا يدمج الشرطة السفلية ولا فواصل البريد الرموز: foo_bar كلمتان وemail@example.com ثلاث. السلاسل الفارغة أو المسافات فقط تعطي صفر كلمات، والمسافات الطرفية لا تُنشئ رموزًا إضافية. يمرّ الخوارزم على مقاييس يونيكود، فالإيموجي حرف واحد لا وحدتان UTF-16.
الصينية واليابانية والكورية بلا قواميس مخفية
الكتابات التي لا تفصل الكلمات بمسافات تحتاج قاعدة صريحة. كل حرف هان كلمة واحدة؛ والمتتابعات المتصلة من كانا أو هانغول كلمة واحدة لكل متتابعة. السلاسل المختلطة، مثل Hello مباشرة قبل رموز هان، تنقسم إلى رموز لاتينية وهان بدل أن تنهار في كتلة واحدة. علامات نهاية الجملة بعرض كامل أو إيديوغرافية تغلق الجملة دون اشتراط مسافة تالية، كما تُكتب نثر CJK. لا يُضمَّن مقطّع معجمي ثقيل: القواعد قابلة للنقل والتدقيق ومتطابقة بين الخادم والمتصفح.
الجمل والفقرات ووقت القراءة
تنتهي الجمل عند . و! و؟ ونقاط الحذف وعلامات CJK، مع اقتباسات أو أقواس إغلاق اختيارية، بينما النقطة العشرية في 3.14 لا تفتح جملة جديدة. الفقرات كتل من أسطر غير فارغة تفصلها أسطر فارغة؛ سطر جديد بسيط داخل الكتلة يبقى فقرة واحدة. يستخدم وقت القراءة سرعتك بالكلمات في الدقيقة (200 افتراضيًا) ويُقرَّب لأعلى إلى ثوانٍ كاملة، أو صفر إن لم توجد كلمات. استخدم حقول JSON في المحررات وفحوصات SEO وتحققات أنظمة المحتوى وأي مسار يحتاج عدًّا مستقرًا.
حالات الاستخدام
ضبط طول المحتوى وتحسين محركات البحث
قِس العناوين والأوصاف والنص قبل النشر ليبقى هدف الطول متسقًا بين المؤلفين.
مسودات متعددة اللغات
اعدد نصًا لاتينيًا وCJK مختلطًا بقواعد صريحة دون إخفاء الرموز الإيديوغرافية أو دمجها في كلمة عملاقة.
الأتمتة وربط أنظمة المحتوى
استدعِ واجهة البرمجة بنفس عقد الأداة المجانية لرفض المنشورات الفارغة أو تقدير وقت القراءة في مسار عمل.
معاينة البنية
اعرض الأحرف والجمل ووقت القراءة بجانب المسودة ليرى المراجع البنية لا الطول الخام وحده.
الأسئلة الشائعة
هل عدّاد الكلمات عبر الإنترنت مجاني؟
نعم. أداة المتصفح محلية بلا تكلفة. طلبات واجهة البرمجة تخصم السعر الأساسي المنشور $0.002 من الرصيد المدفوع مسبقًا؛ والمهمة الفاشلة لا تُحاسب.
كيف تُحسب الكلمات؟
بتتابعات حروف وأرقام يونيكود مع وصل صريح للفاصلة العليا والواصلات والنقاط العشرية. لا يُستخدم Intl.Segmenter حتى يتطابق المتصفح والخادم.
كيف يعمل العدّ للصينية أو اليابانية؟
كل حرف هان كلمة. الكانا أو الهانغول المتصل كلمة لكل تتابع. علامات مثل 。 و! تغلق الجملة حتى لو لم يكن الحرف التالي مسافة.
هل 3.14 يُنشئ جملتين؟
لا. نقطة عشرية واحدة بين أرقام تبقى داخل العدد للكلمات والجمل معًا.
ماذا يعني reading_time_seconds؟
سقف (الكلمات × 60 / wpm). القيمة الافتراضية لـ wpm هي 200؛ عيّن رقمًا محدودًا أكبر من صفر لتغيير التقدير.
ما الحد الأقصى لحجم النص؟
حتى 500,000 حرف يونيكود لكل طلب. قسّم المستندات الأكبر قبل العدّ.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/text/word-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello world. How many words is this?"}'const res = await fetch("https://api.kit.forhosting.com/text/word-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello world. How many words is this?"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/word-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello world. How many words is this?"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/word-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello world. How many words is this?"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello world. How many words is this?"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/word-count", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Hello world. How many words is this?"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.word_count",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_chars | 500000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |