שיעורי מודול (4/4)
פיצול עם regex
String.prototype.split(separator) מקבל לא רק מחרוזת קבועה אלא
גם רגקס כמפריד. זה הופך אותו לכלי רב עוצמה ליצירת אסימונים
טקסט מובנה.
'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 ניסיונות