النص

Whitespace & Trim Tools

تنظيف النص من المسافات الزائدة: قص المسافات عند أطراف الأسطر، دمج المسافات المتكررة، إزالة الأسطر الفارغة، تحويل التبويبات ↔ المسافات.

Extra whitespace — at line edges, doubled up inside text, blank lines, mixed tabs and spaces — is rarely visible at a glance, but it often breaks string comparisons, parsing, or how code looks. This tool cleans up such issues with a set of targeted operations.

How to use it

Common uses

Things to keep in mind

A non-breaking space ( , code point U+00A0) looks like a regular space but is a different character to a computer — strings containing it aren't equal to a regular space in comparisons.

Trimming line-edge whitespace doesn't touch spaces inside words or sentences — collapsing repeated internal spaces is a separate operation.

مقالة عن هذه الأداة: المسافات غير المرئية: لماذا تفشل مقارنة نصين متطابقين ظاهريًا

الأسئلة الشائعة

ما الفرق بين قص أطراف الأسطر ودمج المسافات المتكررة؟

قص المسافات عند أطراف الأسطر يزيل الفراغات في بداية السطر ونهايته فقط، بينما دمج المسافات المتكررة يحوّل أي سلسلة من الفراغات المتتالية داخل السطر إلى فراغ واحد؛ وهما خياران منفصلان يمكن تفعيلهما معًا أو كل على حدة.

كيف تُعالَج الأسطر الفارغة وتحويل التبويبات؟

يمكن إزالة الأسطر الفارغة كليًا أو دمج عدة أسطر فارغة متتالية في سطر واحد، كما يمكن تحويل التبويبات إلى مسافات أو العكس مع تحديد عرض التبويب بعدد الأحرف المطلوب.

هل النص الذي أنظّفه يُرسل إلى خادم؟

لا، عمليات التنظيف تتم بالكامل داخل متصفحك عبر JavaScript، دون إرسال النص إلى أي خادم.

ما هي الأحرف عديمة العرض؟

هي أحرف (zero-width space، zero-width joiner وغيرها) لا تشغل أي مساحة على الشاشة إطلاقًا، لكنها موجودة في النص كأحرف مستقلة. تتسلل أحيانًا إلى النص عند النسخ من بعض المواقع، وقد تُفسد بصمت مقارنة السلاسل أو البحث.

لماذا تبدو المسافة غير القابلة للكسر مثل مسافة عادية لكنها تتصرف بشكل مختلف؟

المسافة غير القابلة للكسر ( ) مطابقة بصريًا للمسافة العادية، لكنها بالنسبة للحاسوب حرف مختلف — السلاسل التي تحتوي هذين النوعين من المسافات غير متساوية تقنيًا عند المقارنة، حتى لو بدتا متطابقتين على الشاشة.

مقالات: النص

camelCase وsnake_case وkebab-case: متى نستخدم كل صيغة

لماذا يوجد camelCase وsnake_case وkebab-case، وأين يُستخدم كل منها عادة.

Text Diff: كيف تعمل خوارزمية إيجاد الفروقات بين النصوص

كيف تجد خوارزمية الديف أصغر مجموعة تغييرات بين نسختين من نص.

التعبيرات النمطية: الأساسيات وفخّ المطابقة الجشعة

الفرق بين المطابقة الجشعة والكسولة في التعبيرات النمطية ولماذا يهم ذلك عمليًا.

فرز الأسطر: لماذا يختلف الفرز الأبجدي عن العددي

لماذا يعامل الفرز الأبجدي الأرقام كنص، وكيف يختلف ذلك عن الفرز العددي.

الهروب بالأحرف: لماذا يختلف حسب السياق (JS وJSON والشِل والريجكس)

لماذا لا توجد قاعدة هروب واحدة تصلح لكل السياقات: JS وJSON والشِل والريجكس.

CRLF وLF: لماذا لا تزال نهايات الأسطر تسبّب مشاكل

من أين جاء الفرق بين CRLF وLF، ولماذا لا يزال يسبب مشاكل مع git والسكربتات.

عدّ الأحرف والكلمات: لماذا يعتمد على يونيكود

لماذا يمكن أن يتكون رمز تعبيري واحد ظاهريًا من عدة نقاط ترميز في يونيكود.

Lorem Ipsum: من أين جاء نص الحشو ولماذا لا معنى له

من أين جاء نص Lorem Ipsum فعليًا، ولماذا يُستخدم نص بلا معنى بدلاً من نص حقيقي.

Slugify: كيف يتحول العنوان إلى رابط صالح

كيف يتحول عنوان مقالة إلى رابط نظيف وقابل للقراءة بشرطات.

Markdown: لماذا أصبح معيار التوثيق

لماذا يظل Markdown مقروءًا حتى في صورته الخام، بخلاف HTML.

عكس النص: لماذا يفشل مع الرموز التعبيرية

لماذا يكسر عكس النص الساذج الرموز التعبيرية المركّبة من عدة نقاط ترميز.

تحليل تكرار النص: من سحابة الكلمات إلى كسر الشيفرات

كيف ساعد تحليل تكرار الحروف تاريخيًا في كسر شيفرات الاستبدال البسيطة.