דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
D

davidnead

@davidnead
אודות
פוסטים
382
נושאים
40
קבוצות
0
עוקבים
3
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • מניפולציה על תוצאה של חיפוש בביטוי רגולרי
    D davidnead

    @dovid אמר במניפולציה על תוצאה של חיפוש בביטוי רגולרי:

    אתה מקבל פונקציה שהפרמטר הראשון שלה הוא האובייקט match, והבאים אחריו זה הקבוצות

    תודה! זה בדיוק הידע שהיה חסר לי. אבל עדיין לא הבנתי אותו עד הסוף.

    1. מה זה בדיוק האובייקט mach שאני מקבל בפרמטר הראשון?
    2. הקבוצות, פשוט משורשרות כפרמטרים לפי הסדר?
    3. מה המשמעות שאני קורא לפונקציה בלי סוגריים במקרה הזה? לכאורה ההתנגהות היא כאילו כן קראתי לה עם סוגריים ופרמטרים רק שהתוכנה "מכניסה" לה פרמטרים לבד.

  • מניפולציה על תוצאה של חיפוש בביטוי רגולרי
    D davidnead

    אני מעוניין לבצע פעולות מסוימות של חרוזות שאני מקבל בעת חיפוש עם ביטוי רגולרי.
    אני מדבר כרגע על JS, אבל לאו בדווקא.

    למשל, הביטוי הבא:

    /==([^=]+)==/g
    

    ימצא מחרוזות מהמבנה ==1==, ==2==, ==3==, וכדומה. כאשר מה שנמצא בתוך הסוגריים זה קבוצה שאני יכול להתייחס אליה באמצעות $1.
    למשל:

    var str = "==1==, ==2==, ==3=="
    srt.replace (/==([^=]+)==/g, "--$1--")
    

    יחזיר לי את התוצאה:
    "--1--, --2--, --3--"

    במקרה הזה, הפונקציה ריפלייס יודעת לזהות שה$1 שבתוך המחרוזת שבפרמטר השני שלה, הוא בעצם משתנה שמכיל קבוצה מתוך הביטוי הרגולרי שנתתי לה בפרמטר הראשון. אגב, אין לי מושג איך ועל פי מה קורה הזיהוי הזה.

    אבל מה קורה אם אני רוצה לבצע פעולה אחרת. אני לא רוצה לשנות את הטקסט שסביב הקבוצה (ה$1), אלא את הקבוצה עצמה. למשל, בדוגמה שלמעלה, אני רוצה להכפיל כל ספרה ב3.
    ולכן מהמחרוזת:
    "==1==, ==2==, ==3=="
    אני רוצה לקבל:
    "==3==, ==6==, ==9=="

    לכאורה זה פשוט, אני רק צריך לעשות פונקציית הכפלה על ה$1, אבל כנראה שזה לא עובד כך. ברגע שאני עושה איזו פעולה על ה$1 הוא מפסיק להיות מזוהה כמשתנה של קבוצת התווים מתוך התוצאה הספציפית של הביטוי הרגולרי, ומזוהה בטקסט סתם.
    למשל, במקרה הזה, ניסיתי:

    var str = "==1==, ==2==, ==3=="
    srt.replace (/==([^=]+)==/g, "$1"*3)
    

    וזה לא פעל. כי הקוד פוענח כאילו אני מכפיל מחרוזת "$1" *3 ולא כאילו אני מכפיל משתנה בשם $1 המכיל בתוכו ספרה.

    אני מניח שהתשובה פשוטה, למי שמבין כיצד עובד הזיהוי של תוצאת החיפוש הרגולרי, כלומר לא לי.
    תודה ושבוע טוב

  • 1
  • 2
  • 16
  • 17
  • 18
  • 19
  • 20
  • 20 / 20
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום