دروس الوحدة (4/4)
انقسام مع ريكس
String.prototype.split(separator) لا يقبل فقط سلسلة ثابتة ولكن
أيضًا regex كفاصل. وهذا يجعلها أداة قوية للترميز
نص منظم.
'uno, due,tre quattro'.split(/[,\s]+/);
// ["uno", "due", "tre", "quattro"]يتطابق التعبير العادي /[,\s]+/ مع "واحدة أو أكثر من الفاصلة أو المسافة البيضاء": انقسام
انشقاقات على أي محدد مركب.
حالات نموذجية
- ملف CSV المسموح به:
text.split(/\s*,\s*/)للتعامل مع المسافات حول الفواصل. - الرمز المميز الساذج:
text.split(/\s+/)لاستخراج الكلمات. - احتفظ بالفاصل: إذا كان التعبير العادي يحتوي على مجموعات ملتقطة، فسيتم حذف يتم تضمين محتوى المجموعات ** في مصفوفة النتائج.
'a=1; b=2; c=3'.split(/(;)\s*/);
// ["a=1", ";", "b=2", ";", "c=3"]بدون المجموعة () ستختفي الفاصلة المنقوطة. مع (;) يمكنك الاحتفاظ به
في النتيجة.
الحفاظ على الفواصل في عمليات الانقسام
إذا قمت بوضع فواصل مقسمة داخل أقواس الالتقاط، فإن مخرجات String.prototype.split ستتضمن الفواصل نفسها كعناصر في المصفوفة النهائية، بدلاً من التخلص منها.
جربه
ابحث عن كل فاصل CSV مسموح به: فاصلة بمسافات اختيارية حولها. بهذه الطريقة يمكنك استخدامها بشكل مقسم لترميز القائمة.
إظهار التلميح
استخدم \\s* قبل وبعد الفاصلة لاستيعاب أي مسافات اختيارية.
الحل متاح بعد 3 من المحاولات
تمرين المراجعة
ابحث عن كل فاصل "مسافات أو فواصل منقوطة" (واحد أو أكثر). بهذه الطريقة، سيؤدي التقسيم إلى تحويل النص إلى كلمات.
إظهار التلميح
الجمع بين \\s و ; في فئة [\\s;] مع محدد الكمية +.
الحل متاح بعد 3 من المحاولات
التحدي الإضافي
Write a regex to use in a split that separates numbers while keeping math operators `+`, `-`, `*`, `/` as elements of the array.
إظهار التلميح
Enclose the math operators character class in capture parentheses to preserve them in the split array.
الحل متاح بعد 3 من المحاولات