حساب الحروف فقط
يحتوي النص Hello, World! 123 — café Ωmega 🚀 على 19 حرفًا: تُتخطى الأرقام والمسافات وعلامات الترقيم والرمز التعبيري، بينما يُحسب é وحرف Ω اليوناني مثل أي حرف آخر. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- Hello, World! 123 — café Ωmega 🚀
- عدد الحروف
- 19
تمنحكم هذه الأداة عدداً صافياً للحروف الأبجدية الموجودة في النص. فهي تتجاهل الأرقام والمسافات وفواصل الأسطر وعلامات الترقيم والرموز التعبيرية وعلامات العملات والعوامل الرياضية وغيرها من الرموز، ولذلك لا تزيد العناصر العارضة النتيجة. وخلافاً للفحص المحصور في ASCII، تتعرف الأداة إلى حروف Unicode، بما فيها الحروف اللاتينية ذات العلامات والحروف اليونانية والسيريلية والعربية وحروف أنظمة كتابية كثيرة أخرى. تفيد النتيجة في ألعاب الكلمات والتمارين التعليمية والمراجعة التحريرية وتنظيف البيانات واختبارات البرمجيات القابلة للتكرار. يجري الحساب محلياً وبطريقة حتمية من دون شبكة أو عشوائية أو اعتماد على التاريخ.
ما الذي يشمله مجموع الحروف وحدها
تحسب النتيجة المحارف التي تكون فئتها العامة في Unicode هي فئة الحروف. وتشمل هذه الفئة الحروف الكبيرة والصغيرة وحروف حالة العنوان والحروف المعدلة ومحارف أنظمة الكتابة التي لا تتبع النمط الإنجليزي من A إلى Z. فالحرف é والحرف اليوناني Ω والحرف العربي ك يُحسب كل منها حرفاً واحداً.
أما علامة النبر المركبة المدخلة منفصلة فلا تضيف حرفاً آخر لأنها علامة وليست حرفاً، بينما يبقى الحرف الأساسي محسوباً. ولا تدخل الأرقام في المجموع مطلقاً، سواء وردت داخل رمز منتج أم بجانب كلمة أم منفردة. كما تُهمل المسافات وعلامات الجدولة وفواصل الأسطر والفواصل والنقاط والفواصل العليا وعلامات الاقتباس والشرطات والأقواس والعوامل وعلامات العملات والرموز التعبيرية والزخارف.
يجعل هذا العقد المحدد الرقم واضحاً للألعاب ومعايير التصحيح والاختبارات الآلية. ولا يتحول النص الأصلي ولا يُطبّع أو يُصحح أو يُعاد في نسخة مرشحة، بل يُفحص تماماً كما أرسلتموه.
كيفية إدخال النص وفهم الحالات الحدية
يمكن أن تتضمن السلسلة جملاً أو أسطراً متعددة أو رموزاً برمجية أو علامات ترقيم، ولا حاجة إلى تنظيفها مسبقاً لأن العداد يتجاوز العناصر غير الحرفية تلقائياً. تُرفض المصفوفات والكائنات والقيم المنطقية والأعداد بدلاً من تحويلها إلى نص بصمت، تفادياً للنتائج المفاجئة. يقتصر الإدخال على مئة ألف محرف JavaScript لضبط التنفيذ في المتصفح وWorker.
تمر الخوارزمية على نقاط Unicode البرمجية، فلا تقسّم محرفاً من مستوى إضافي إلى خطوتين، ثم تطبق خاصية الحرف القياسية على كل نقطة. لا تخمّن اللغة ولا تستشير قاموساً ولا تتأثر بحالة الحرف. وبغياب الشبكة والوقت الحالي والعشوائية والحالة المتغيرة، ينتج الإدخال نفسه المخرج نفسه دائماً.
استخدام المجاميع الصافية في الألعاب والتحليل
ينفع عد الحروف وحدها عندما ينبغي ألا يؤثر التنسيق والمحارف العارضة في القياس. يستطيع مصممو ألعاب الكلمات مقارنة أطوال التلميحات مع وجود الترقيم والمسافات وعلامات الوقف، من دون إنشاء نسخة منظفة أولاً. ويمكن للمعلمين مراجعة تمارين الأبجدية وإعداد مفاتيح إجابة قابلة للتكرار وشرح الفرق بين الحروف وجميع المحارف.
كما يستطيع المحررون والباحثون قياس المحتوى الحرفي في التسميات وإجابات الاستبيانات والعناوين والسجلات المستوردة التي تضم معرفات. ويمكن للمطورين إنشاء تجهيزات مرجعية واختبار قواعد التحقق وتدقيق الحقول المختلطة أو التأكد من وجود قدر مطلوب من المادة الأبجدية. وفي مسارات تنظيف البيانات، تكشف نتيجة الصفر لحقل غير فارغ الصفوف المكونة من أرقام أو رموز فقط.
لا تحسب الأداة الكلمات أو المقاطع أو العناقيد الكتابية أو الحركات الصوتية أو الصوامت أو جميع المحارف المرئية، ولا تحذف شيئاً من النص. استخدموا أداة متخصصة عند الحاجة إلى تلك النتائج.
حالات الاستخدام
فحص مواد ألعاب الكلمات
قيسوا المحتوى الأبجدي القابل للعب في التلميحات والعبارات والإجابات، مع تجاهل الترقيم وعلامات الوقف.
تدقيق البيانات المختلطة
اعرفوا مقدار المحتوى الأبجدي في التسميات والاستبيانات والسجلات المستوردة التي تحتوي أرقاماً أو رموزاً.
إنشاء اختبارات حتمية
ولّدوا مجاميع Unicode ثابتة لأدوات التحقق والتجهيزات المرجعية والبرامج التعليمية واختبارات CI.
الأسئلة الشائعة
هل تُحسب الحروف ذات العلامات وحروف اللغات الأخرى؟
نعم. تستخدم الأداة خاصية الحرف في Unicode، فتشمل الحروف اللاتينية ذات العلامات وحروف أنظمة كتابية كثيرة أخرى.
هل تدخل الأرقام والمسافات وعلامات الترقيم؟
لا. تُهمل الأرقام والمسافات وعلامات الترقيم والرموز التعبيرية والعملات والعوامل الرياضية وغيرها من الرموز.
هل يمكن أن تكون النتيجة صفرًا؟
نعم. النص المكوّن من أرقام أو مسافات أو علامات ترقيم أو رموز تعبيرية فقط لا يحتوي على حروف، فتكون النتيجة صفرًا، وكثيرًا ما يكون هذا هو المطلوب عند فحص البيانات. أما النص الفارغ تمامًا فيُرفض.
هل تُحسب الحروف الكبيرة والصغيرة بالطريقة نفسها؟
نعم، لا أثر لحالة الحرف: يضيف كل من A وa حرفًا واحدًا. تتحقق الأداة فقط مما إذا كان الرمز حرفًا في أي أبجدية، وتتجاهل كل ما عداه.
هل تُحسب علامة التشكيل المكتوبة منفصلة حرفًا؟
لا. عندما تُكتب العلامة رمزًا مستقلًا فهي ليست حرفًا ولا تُضاف، بينما يُحسب الحرف الذي يحملها كالمعتاد. لذلك لا يتغير المجموع بحسب طريقة كتابة العلامة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/str/char-count-letters-only \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, World! 123"}'const res = await fetch("https://api.kit.forhosting.com/str/char-count-letters-only", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, World! 123"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/char-count-letters-only",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, World! 123"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/char-count-letters-only", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, World! 123"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, World! 123"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/char-count-letters-only", 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! 123"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.char_count_letters_only",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_chars | 100000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
يمكنكم استخدام أداة المتصفح، أو استدعاء API بسعر $0.002 لكل طلب ناجح عند الحاجة إلى أتمتة القاعدة نفسها.
ما الذي يشمله مجموع الحروف وحدها
تتضمن الاستجابة عمداً قيمة letter_count واحدة ووسم طريقة ثابتاً، ولا تخلط معها عدد الكلمات أو البايتات أو الحركات الصوتية أو جميع المحارف.
كيفية إدخال النص وفهم الحالات الحدية
ضعوا المصدر في الحقل الإلزامي text على هيئة سلسلة JSON، أو الصقوه في حقل المتصفح المقابل. تُرفض السلسلة الفارغة بالخطأ invalid_input كي لا يبدو الإرسال الفارغ سهواً كأنه نتيجة صفر ذات معنى. أما السلسلة غير الفارغة المكونة من مسافات أو أرقام أو علامات ترقيم أو رموز تعبيرية فقط فهي صالحة وتعيد letter_count بقيمة صفر.
استخدام المجاميع الصافية في الألعاب والتحليل
تناسب نسخة المتصفح الفحوص الفردية، بينما يكلف كل استدعاء ناجح لـAPI مبلغ $0.002 ويطبق الخوارزمية نفسها.
أسئلة تقنية
ما تكلفة عداد الحروف وحدها؟
استخدامه في المتصفح مجاني. يكلف طلب API الناجح $0.002، وتُرفض المدخلات غير الصالحة.
هل يمكن أن تكون النتيجة الصالحة صفراً؟
نعم. تعيد السلسلة غير الفارغة الخالية من الحروف قيمة letter_count صفراً، أما السلسلة الفارغة فغير صالحة.
هل تعيد الأداة النص بعد حذف غير الحروف؟
لا. تعيد قيمة letter_count رقمية ووسم الطريقة، ولا تعدّل المصدر ولا تقدم نسخة مرشحة منه.