تطبيع المسافات البيضاء
حوّل النص المبعثر إلى سطر واحد نظيف: تحية من 36 حرفًا مليئة بعلامات الجدولة والمسافات المزدوجة وفواصل الأسطر تصبح Hello, world! How are you? في 26 حرفًا. وتُقصّ المسافات من الطرفين أيضًا. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- Hello, world! How are you?
- النتيجة
- Hello, world! How are you?
- النص
- Hello, world! How are you?
- الأصلي
- Hello, world! How are you?
- الطول
- 26
غالبًا ما تصل السجلات الملصوقة والرسائل ومخرجات OCR وصادرات الجداول ككتل متعددة الأسطر فوضوية، ممتلئة بعلامات الجدولة والمسافات الزائدة وأنماط أسطر مختلطة تكسر فحوصات التساوي ورموز البحث وتسميات الواجهة المدمجة. تأخذ أداة تطبيع المسافات البيضاء نصًا غير فارغ، وتقص الطرفين، وتطوي كل تتابع من المسافة البيضاء — بما في ذلك المسافات العادية وعلامات الجدولة وعودة الحمل وتغذية السطر — إلى مسافة ASCII واحدة، فيكون الناتج دائمًا سطرًا نظيفًا. تفشل السلاسل الفارغة أو التي هي مسافات فقط بإدخال غير صالح حتى لا تخزّن المسارات فراغًا بعد خطوة التنظيف. استخدمها قبل الفهرسة، وقبل تجزئة عنوان، وقبل مقارنة إجابات، وقبل كتابة حقل CMS بسطر واحد.
معنى تطبيع المسافات البيضاء ومتى تستخدمه
تطبيع المسافات البيضاء إعادة كتابة معروفة يكتبها المبرمجون أصلًا سطرًا واحدًا في لغات كثيرة: قص السلسلة ثم استبدال كل تتابع من أحرف المسافة البيضاء بمسافة ASCII واحدة بالضبط. بخلاف أداة تطوي المسافات العادية المتكررة فقط وتترك الجدولة والأسطر الداخلية في موضعها، تعامل هذه القدرة علامات الجدولة وتغذية السطر وعودة الحمل وتغذية النموذج والجدولة العمودية وسائر مسافات Unicode التي تطابقها فئة JavaScript القياسية كفواصل متكافئة. فقرة منسوخة من رسالة، وسطر سجل ملتصق بعلامات جدولة، وخلية ما زالت تحمل CRLF من Windows تصبح سطرًا مرتبًا من رموز مفصولة بمسافات مفردة.
تبقى الحروف والأرقام وعلامات الترقيم التي كتبتها كما هي؛ لا تُحوَّل إلى أحرف صغيرة ولا إلى slug ولا يُعاد ترتيبها. فضّل هذه الصفحة عندما تكون نية البحث تطبيع المسافات البيضاء، أو طي الجدولة والأسطر إلى مسافات، أو ضغط نص فوضوي في سطر واحد. لا تستخدمها عندما تحتاج حذف كل المسافات حتى تلتصق الرموز، أو عندما تريد إزالة المسافات ASCII الزائدة فقط مع الإبقاء على التخطيط متعدد الأسطر، أو عندما تريد قص كل سطر مع حفظ بنية الأسطر.
تلك منتجات مختلفة باستعلامات مختلفة.
متى يفيدك جمع النص في سطر واحد
استدعِ أداة تطبيع المسافات البيضاء المجانية في المتصفح لتنظيف اللصق وعروض الصف وضمان جودة المحتوى والفحوصات السريعة، دون تثبيت أداة سطح مكتب أو كتابة سطر تقسيم وضم في كل لغة. مسار نموذجي يسطّح عناوين المستخدمين وتعليقاتهم واستعلامات بحثهم قبل التخزين حتى يُقارن سجلان يختلفان فقط بالجدولة أو الأسطر الملفوفة كأنهما متساويان. مسار آخر ينظّف أسطر OCR وخلايا CSV قبل الفهرسة حتى تنقسم الرموز على مسافة واحدة وتبقى سمات n-gram مستقرة.
اربط هذه النقطة بمحوّلات الحالة أو بُناة slug أو بحث واستبدال عندما تكون الخطوة التالية أسلوبًا أو توجيهًا، لكن أبقِ تطبيع المسافات البيضاء صفحة هبوط خاصة حتى لا تختلط نية البحث بأدوات إزالة المسافات الزائدة أو حذف كل المسافة البيضاء. لا تتوقع إزالة وسوم HTML أو إعادة تدفق markdown أو سياسة مسافة غير قابلة للكسر خاصة باللغة تتجاوز فئة المسافة البيضاء القياسية أو حفظ بنية الفقرات — تلك مشاكل منفصلة.
حالات الاستخدام
عناوين واستعلامات بحث في سطر واحد
سطّح العناوين والتعليقات وصناديق البحث الملصوقة حتى لا تكسر الجدولة والأسطر الملفوفة التساوي أو التجزئة أو تسميات الواجهة المدمجة.
تنظيف OCR وCSV والسجلات
اضغط مخرجات OCR وخلايا الجداول وشظايا السجلات في سطر واحد قبل الفهرسة أو تحميل المستودع حتى تنقسم الرموز على مسافة واحدة.
الأسئلة الشائعة
كيف أطبّع المسافات البيضاء بهذه الأداة؟
حقل result في الاستجابة هو السلسلة المقصوصة في سطر واحد، وكل تتابع مسافات أو جدولة أو أسطر مطوي إلى مسافة واحدة.
بم يختلف هذا عن إزالة المسافات الزائدة؟
إزالة المسافات الزائدة تطوي مسافات ASCII المتكررة فقط وتُبقي الجدولة والأسطر الداخلية. تطبيع المسافات البيضاء يعامل كل المسافة — بما في ذلك الجدولة والأسطر — كفواصل ويعيد دائمًا سطرًا واحدًا.
ماذا يحدث لعلامات الجدولة والأسطر داخل النص؟
كل تتابع من الجدولة أو الأسطر الجديدة أو عودة الحمل أو غيرها من المسافة البيضاء يصبح مسافة ASCII واحدة. تُزال المسافة الأولى والأخيرة بالكامل.
هل يمكنني الإبقاء على الفقرات أو فواصل الأسطر؟
لا. يتحول كل فاصل أسطر إلى مسافة مفردة، فتكون النتيجة سطرًا واحدًا دائمًا. وإذا كنت تريد الإبقاء على التنسيق وحذف المسافات الزائدة وحدها، فهذه ليست الأداة المناسبة.
هل تتغير الحروف أو علامات الترقيم؟
لا. تتغير المسافات البيضاء وحدها، أما الحروف والأرقام وعلامات الترقيم فتبقى كما كتبتها تمامًا. ولا يُحوَّل شيء إلى أحرف صغيرة ولا يُعاد ترتيب أي شيء.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/str/normalize-whitespace \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello,\tworld!\nHow are you?"}'const res = await fetch("https://api.kit.forhosting.com/str/normalize-whitespace", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello,\tworld!\nHow are you?"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/normalize-whitespace",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello,\tworld!\nHow are you?"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/normalize-whitespace", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello,\\tworld!\\nHow are you?"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello,\tworld!\nHow are you?"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/normalize-whitespace", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Hello,\tworld!\nHow are you?"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.normalize_whitespace",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
معنى تطبيع المسافات البيضاء ومتى تستخدمه
يرفع الإدخال الفارغ والسلاسل التي تحتوي مسافة بيضاء فقط invalid_input حتى لا يمر حقل نموذج منسي كفراغ ناجح.
عقد الإدخال والخوارزمية وقراءة الاستجابة
يقص المحرك أولًا المسافة الأولى والأخيرة ثم يستبدل كل تتابع متبقٍ لحرف مسافة بيضاء واحد أو أكثر بمسافة U+0020 واحدة؛ لذلك لا تترك الجدولة والأسطر المختلطة فجوات مزدوجة ولا يحتوي الناتج فاصل سطر أبدًا. أرسل جسم JSON بالحقل النصي الإلزامي text مضبوطًا على المقطع غير الفارغ الذي تريد تنظيفه. تُقبل الأسماء المستعارة input وvalue وs وcontent عندما تستخدمها عملاء قديمة أو نماذج مولَّدة. غياب text أو قيمة غير نصية أو سلسلة فارغة أو سلسلة مسافات فقط أو حمولة أطول من سقف الأحرف الموثق ترفع invalid_input برسالة تسمّي المشكلة، ولا تُحسب هذه الإخفاقات على API المدفوعة مسبقًا. استخدم result وحده عندما تحتاج السطر النظيف فقط؛ واستخدم original وresult معًا عندما يجب أن تعرض تجربة قبل وبعد؛ واستخدم chars_removed وchanged عندما تسجّل المسارات مدى شدة التنظيف. أبقِ الحمولات بعبارات وفقرات ومستندات قصيرة مناسبة لعازل Worker لا بمقالب متعددة الميغابايت.
استخدام API والتسعير ومسارات العمل والحدود العملية
استخدم API KIT المدفوعة مسبقًا عندما يحتاج CMS أو مهمة ETL أو خلفية نموذج أو مكتب دعم أو عميل جوال نفس التحويل تحت الرصيد بسعر $0.002 لكل عنصر ناجح؛ إخفاقات التحقق لا تستهلك الرصيد أبدًا بعد رفض المحرك. يمكن لمؤلفي SDK توثيق text كحقل إلزامي وحيد وعرض مثال نجاح بجدولة وأسطر مختلطة ومثال خطأ سلسلة فارغة حتى يرى المدمجون وجهي العقد.
حالات التكامل
تجهيزات حتمية وضمان جودة
ثبّت سلسلة فوضوية معروفة إلى golden بسطر واحد حتى تفشل إعادة الهيكلة التي تغيّر قواعد القص أو الطي التكامل المستمر فورًا.
أسئلة تقنية
ماذا لو كان النص فارغًا أو مسافة بيضاء فقط؟
تفشل السلاسل الفارغة والتي هي مسافة بيضاء فقط بـinvalid_input ولا تُحسب.
هل أداة تطبيع المسافات البيضاء مجانية؟
تعمل أداة المتصفح مجانًا على جهازك. تستخدم استدعاءات API رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل عنصر ناجح؛ إخفاقات التحقق لا تُحسب.