حساب مرات ظهور حرف محدد في النص
يبيّن عداد الحروف هذا عدد مرات ظهور حرف تختارونه داخل النص بدقة. أدخلوا أي نص، وحددوا حرفا واحدا أو رقما أو علامة ترقيم أو مسافة أو رمزا أو وجها تعبيريا، ثم اختاروا ما إذا كان ينبغي التفريق بين الحروف الكبيرة والصغيرة.
شغّل الأداة مجانًا
تحصلون على عدد مباشر من دون صياغة أنماط أو قواعد خفية للكلمات. تفيد الأداة في التحرير وفحص البيانات والتمارين التعليمية وتدقيق التنسيق وعمليات الأتمتة الصغيرة التي لا يكفي فيها العدد الإجمالي للحروف.
احسبوا حرفا واحدا بلا مفاجآت الأنماط
يقيس العداد العام طول النص كله، لكن كثيرا من المهام يتعلق بعلامة محددة. يمكنكم فحص الأصفار أو الفواصل أو الحروف. تمر الأداة على النص وتضيف كل تطابق حرفي؛ فلا تتحول النقطة أو النجمة أو القوس إلى أمر في تعبير نمطي. تقبل المسافات وفواصل الأسطر والحروف ذات العلامات والوجوه التعبيرية ما دام الهدف حرف Unicode واحدا. يعيد النص الفارغ صفرا. وتكرر النتيجة الحرف المستهدف ووضع حالة الأحرف كي يبقى سياق النتيجة المحفوظة واضحا.
اختاروا التطابق الدقيق أو تجاهل الحالة
التطابق الدقيق هو الوضع الافتراضي، ولذلك يحسب A وa على نحو منفصل. فعّلوا تجاهل الحالة عندما لا تهم الكتابة الكبيرة. لا يزيل هذا الخيار العلامات ولا يوحد الترقيم ولا يدمج الرموز المتشابهة بصريا. تمر الخوارزمية على نقاط Unicode، ولذلك يمكن عد وجه تعبيري تكميلي كهدف واحد. وفي الكتابات والرموز التي لا تملك صورا كبيرة وصغيرة، يعطي الوضعان عادة النتيجة نفسها.
استخدموا النتيجة في الفحص والأتمتة
يستطيع المحررون فحص علامات الاقتباس والشرطات، ويستطيع المطورون مراجعة الفواصل، كما يستطيع المعلمون تدقيق تمارين تكرار الحروف. ويمكن لفرق البيانات فحص الفاصل قبل التحليل. تسهل مقارنة الاستجابة المختصرة بحد متوقع. تبلغ كلفة طلب API واحد $0.002، أما مشغل المتصفح فيناسب الفحص التفاعلي. لا تستعين العملية بمصدر خارجي ولا تعتمد على العشوائية أو الوقت. أرسلوا حرفا واحدا دائما؛ فالكلمة أو السلسلة الجزئية تؤدي إلى خطأ إدخال واضح.
حالات الاستخدام
تدقيق الفواصل
احسبوا الفواصل وعلامات الجدولة والخطوط الرأسية والفواصل المنقوطة قبل إعداد المحلل.
مراجعة التمارين
قيسوا تكرار حرف محدد مع جمع الحروف الكبيرة أو فصلها حسب الحاجة.
التحقق من التنسيق
تأكدوا من العدد المتوقع لعلامات الاقتباس والتعداد والمسافات والرموز في القالب.
الأسئلة الشائعة
ما الكلفة؟
تبلغ كلفة كل طلب API مقدار $0.002. ويمكن استخدام مشغل المتصفح للفحص التفاعلي.
هل يمكن حساب كلمة أو سلسلة جزئية؟
لا. يجب أن يكون الهدف حرف Unicode واحدا بالضبط؛ ويؤدي الهدف الأطول إلى خطأ إدخال.
هل تتطابق الحروف الكبيرة والصغيرة؟
تتطابق فقط عندما تكون case_insensitive بالقيمة true. وتحسب منفصلة افتراضيا.
هل يمكن أن يكون الهدف مسافة أو وجها تعبيريا؟
نعم. يقبل كل هدف تمثله نقطة رمز Unicode واحدة.
ماذا يحدث مع النص الفارغ؟
يعد صالحا ويعيد صفرا إذا كان الحرف المستهدف صالحا.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/text/count-specific-character \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Banana bread","character":"a"}'const res = await fetch("https://api.kit.forhosting.com/text/count-specific-character", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Banana bread",
"character": "a"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/count-specific-character",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Banana bread",
"character": "a"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/count-specific-character", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Banana bread","character":"a"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Banana bread","character":"a"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/count-specific-character", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Banana bread",
"character": "a"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.count_specific_character",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |