تحويل إلى snake_case
تتحول «Hello World» و«HelloWorld» و«hello-world» كلها إلى كلمتين صغيرتين هما «hello» و«world» تصلهما شرطة سفلية واحدة دون مسافات. وتُعدّ الأحرف الكبيرة داخل الكلمة والنقاط والشرطات فواصل بين الكلمات. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- Hello World
- النتيجة
- hello_world
- الطول
- 11
- الطول الأصلي
- 11
- عدد الكلمات
- 2
تُرفض المدخلات الفارغة بخطأ تحقق واضح بدل إرجاع سلسلة فارغة بصمت، مما يحمي العملاء الذين نسوا ربط حقل.
ما صيغة snake case وأين تُستخدم
صيغة snake case طريقة لكتابة الأسماء تُكتب فيها كل الكلمات بأحرف صغيرة وتفصل بينها شرطة سفلية واحدة، فتصبح Hello World كلمتي hello وworld بينهما شرطة سفلية. وهي الصيغة المعتادة لعناوين الأعمدة في الجداول وقواعد البيانات ولأسماء الملفات وأسماء المتغيرات في كثير من لغات البرمجة، لأنها بلا مسافات وسهلة القراءة. وهي ليست slug عناوين الويب الذي يستخدم الشرطات العادية ويحذف علامات التشكيل، وليست مجرد تحويل إلى أحرف صغيرة يُبقي المسافات.
كيف يجري التحويل وما الأخطاء الشائعة
تبحث الأداة أولًا عن الفواصل المخفية داخل الاسم، فحيث يلتقي حرف صغير أو رقم بحرف كبير تبدأ كلمة جديدة، وتبقى سلسلة الأحرف الكبيرة مثل XML معًا. ثم تتحول كل مجموعة من المسافات أو الشرطات أو النقاط أو الرموز إلى شرطة سفلية واحدة، وتصبح كل الأحرف صغيرة، وتُزال الشرطات السفلية من الطرفين. لذلك تعطي HelloWorld وhello-world النتيجة نفسها. ومن المفاجآت المعتادة أن علامات التشكيل تبقى، وأن الأرقام تلتصق بالكلمة المجاورة، وأن النص المكوّن من رموز فقط يُرفض.
كيف يتحول النص إلى snake case
بعد تلك التقسيمات البنيوية تُستبدل كل سلسلة من الرموز غير الأبجدية الرقمية—مسافات وشرطات وعلامات ترقيم ورموز—بشرطة سفلية واحدة. ثم تُخفض السلسلة كاملة بمطابقة Unicode toLowerCase للمضيف حتى تنطوي الحروف اللاتينية المنبورة دون حذف التشكيل. تُزال الشرطات السفلية الأولى والأخيرة وتنهار التسلسلات الداخلية إلى واحدة، فيُتجنب الفاصل المزدوج في العبارات الفوضوية.
تبقى الأرقام ملتصقة بمقاطع الكلمات المجاورة ما لم يكن حد حرف-رقم قد فرض انقسامًا. تفشل السلاسل الفارغة والمدخلات التي تحوي فواصل فقط في التحقق قبل إرجاع نتيجة. ولأن المسار parse خالص على السلاسل، تبقى الكمون دون الملي ثانية لأحجام النماذج المعتادة ونموذج التكلفة المنشور تحليلي لا يعتمد على رموز نموذج.
الأسئلة الشائعة
ماذا يحدث إذا أرسلت نصًا فارغًا؟
تُرفض السلاسل الفارغة والمدخلات التي تحوي فواصل فقط حتى يلاحظ العملاء الحقول الناقصة بدل استلام نتيجة فارغة بصمت.
هل هو نفسه slug لـ URL؟
لا. يستخدم Snake_case شرطات سفلية بين كلمات صغيرة. تستخدم مسارات URL عادة شرطات وقد تحذف رموزًا أكثر؛ استخدموا أداة slug مخصصة لتلك النية.
كيف تُفصل الكلمات ذات الأحرف الكبيرة الداخلية مثل HelloWorld؟
تبدأ كلمة جديدة حيث يلي الحرفَ الصغير أو الرقمَ حرفٌ كبير، فتنقسم HelloWorld إلى hello وworld. أما سلسلة الأحرف الكبيرة فتبقى معًا، فتصبح XMLHttp هي xml وhttp لا أحرفًا متفرقة.
هل تُحذف علامات التشكيل من الأحرف اللاتينية؟
لا، تتحول الأحرف المشكولة إلى صغيرة فقط، فتحتفظ Café بحرف é. وهذا هو الفرق الكبير عن slug عناوين الويب الذي يحذف العلامات. وإن أردت نصًا بلا علامات فأزلها قبل التحويل.
هل تتحول المسافات المزدوجة أو الرموز إلى عدة شرطات سفلية؟
لا، فكل سلسلة من المسافات أو الشرطات أو النقاط أو الرموز تصبح شرطة سفلية واحدة فقط. وتُزال الشرطات السفلية من البداية والنهاية، فتخرج حتى العبارات المكتوبة على عجل بنتيجة نظيفة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/str/snake-case \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello World"}'const res = await fetch("https://api.kit.forhosting.com/str/snake-case", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello World"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/snake-case",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello World"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/snake-case", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello World"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello World"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/snake-case", 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"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.snake_case",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
Snake_case هو الأسلوب القياسي في كثير من اللغات وعقود البيانات لتسمية المتغيرات والأعمدة وحقول API: كل كلمة بأحرف صغيرة مفصولة بشرطة سفلية واحدة. تأخذ هذه الأداة العبارة أو المعرّف الذي تدخلونه، وتطبّع الفواصل وحدود camelCase، وتخفض كل حرف إلى الصغير بمطابقة واعية لـ Unicode، وتُرجع سلسلة snake_case نظيفة مع عدد الكلمات وبيانات وصفية للتغيير. المسافات والشرطات والنقاط وغيرها من الرموز غير الأبجدية الرقمية تصبح فواصل؛ يتحوّل HelloWorld وhello-world كلاهما إلى hello_world. لا رحلات شبكة داخل المحرك ولا بذور عشوائية ولا اعتماد على الساعة: النص المتطابق ينتج دائمًا JSON متطابقًا.
كيف يعمل التحويل إلى snake_case
يدرج المحول أولًا حدودًا بشرطة سفلية عند حواف camelCase وPascalCase: حرف صغير أو رقم يتبعه حرف كبير ينقسم، وتسلسلات الأحرف الكبيرة المتبوعة بكبير ثم صغير تنقسم حتى تصبح الاختصارات مثل XMLHttp هي xml_http. تفشل الحمولات الطويلة جدًا فوق الحد الموثّق أيضًا بـ invalid_input حتى لا يحتكر طلب واحد ذاكرة Worker.
ما ترسلونه وما تتلقونه
تُحوَّل الأرقام والقيم المنطقية إلى أشكالها العشرية أو true/false؛ وتُرفض الكائنات والمصفوفات وNaN وInfinity. أرسلوا حقلًا إلزاميًا واحدًا باسم text يحتوي العبارة أو المعرّف غير الفارغ الذي تريدونه بصيغة snake_case. تُقبل أسماء بديلة مثل input وvalue وdata وs وmessage وstring وcontent وbody وphrase لراحة ربط العملاء القدامى. عند النجاح تعيد الاستجابة text الأصلي وresult بصيغة snake_case وlength للنتيجة وoriginal_length وword_count لمقاطع مفصولة بشرطة سفلية وchanged منطقي وoperation بقيمة snake_case. فحوصات كلاسيكية: Hello World تصبح hello_world وHelloWorld تصبح hello_world وkebab-case-name تصبح kebab_case_name وalready_snake تبقى already_snake مع changed بقيمة false عندما كان المدخل snake_case مثاليًا. استخدموا نموذج المتصفح المجاني للصق والنسخ السريع ثم استدعوا العقد ذاته من النصوص البرمجية عند إعادة تسمية رؤوس CSV أو توليد أعمدة قاعدة بيانات أو تطبيع أسماء حقول API بالجملة. تسعير استدعاءات API الناجحة هو الأساس المنشور $0.002 لكل عنصر؛ وأخطاء التحقق بما فيها النص الفارغ لا تستهلك الرصيد المدفوع مسبقًا. إن احتاج خط الأنابيب لاحقًا إلى أحرف صغيرة صافية بلا شرطات سفلية أو شرطات slug لـ URL أو camelCase أو حالة عنوان، عاملوها أدوات منفصلة بدل إثقال صفحة التحويل إلى snake_case هذه.
أين تظهر أدوات snake_case في العمل الحقيقي
تعيد فرق الخلفية والبيانات تسمية التسميات البشرية من الجداول ووثائق التصميم إلى أسماء أعمدة وحقول مستقرة قبل الترحيلات وتوليد OpenAPI. تربط عملاء الجوال والويب تسميات النماذج بمفاتيح جسم الطلب التي تطابق عقود الخادم المكتوبة بـ snake_case. غالبًا ما تفرض وظائف ETL التي تستورد رؤوس CSV مختلطة كل رأس عبر snake_case حتى تبقى الروابط وسجلات المخطط متسقة بين المورّدين. تلصق فرق المنتج والنمو أسماء الميزات وتسميات التجارب في مربع snake_case قبل أرشفتها في قواميس أحداث التحليلات التي تفترض أسلوب تسمية واحدًا. ولأن هذه القدرة محرك parse خالص، فإن تسعير API هو الأساس المنشور $0.002 لكل عنصر ناجح والتحقق الفاشل لا يستهلك الرصيد. فضّلوا هذه الصفحة عندما تكون نية البحث حرفيًا التحويل إلى snake case أو محول snake_case؛ وإن احتجتم إلى slug بشرطات مناسب لـ URL فاستخدموا أداة slug المخصصة بدل مدّ هذه القدرة خارج عقدها.
حالات التكامل
تطبيع أسماء حقول API وقاعدة البيانات
حوّلوا التسميات البشرية والمعرّفات المختلطة إلى مفاتيح snake_case مستقرة قبل الترحيلات ومواصفات OpenAPI وتعيينات ORM.
تنظيف رؤوس CSV لـ ETL
افرضوا رؤوس الجداول المستوردة إلى snake_case حتى تتطابق الروابط وسجلات المخطط بين المورّدين والتشغيلات.
مولّدات الشيفرة والهياكل
مرّروا العبارات إلى خطوة snake_case حتمية عند بناء المتغيرات وأسماء الأحداث ومفاتيح الإعداد.
أسئلة تقنية
ماذا يفعل التحويل إلى snake_case؟
يخفض عبارتكم أو معرّفكم إلى أحرف صغيرة ويصل الكلمات بشرطات سفلية، مع تقسيم camelCase وتطبيع المسافات والشرطات وغيرها من الفواصل إلى سلسلة snake_case واحدة.
هل يتعامل مع camelCase وkebab-case؟
نعم. HelloWorld تصبح hello_world وkebab-case-name تصبح kebab_case_name. PascalCase بأسلوب الاختصار مثل XMLHttpRequest تصبح xml_http_request.
كم التكلفة؟
أداة المتصفح مجانية وتعمل محليًا. تستخدم طلبات API رصيد KIT المدفوع مسبقًا بـ $0.002 لكل عنصر ناجح؛ المدخل غير الصالح لا يُحسب.