שלח תשובה

זירת השאלות

633
צפיות
5
תשובות

שימוש ב replace בregex עם שפת JS.

,‏ 26 ביולי, 2005

שלום לכולם!

יש לי משתנה. השם של המשתנה מסתיים בספרה.
אני רוצה למצוא את הספרה ולהחליף אותה או ב +1 או בספרה שתגיע ממשתנה אחר.

הכיצד אני יכול לעשות את זה?
כל נסיון שלי הסתיים בכשלון. כנראה שאני לא כזה טוב ברג'קס..


תודה רבה!

תגיות:

5 תשובות

  1. הנה מה שיש לי עכשיו
    הבעיה בקוד הזה, זה שבמקום להחליף את הספרה, הוא מוסיף לספרה. לדוגמא: במקום לשנות את
    var1
    ל
    var3
    הוא עושה
    var31

            for (i=0;i<main_table.rows[wanted_row].cells.length;i++){
                    try{main_table.rows[wanted_row].cells[i].innerHTML=main_table.rows[wanted_row].cells[i].innerHTML.replace(/(id="{0,1}[a-z^_]+)/gi,"$1"+wanted_row);
                        main_table.rows[wanted_row].cells[i].innerHTML=main_table.rows[wanted_row].cells[i].innerHTML.replace(/(name="{0,1}[a-z^_]+)/gi,"$1"+wanted_row);
                }
    }

  2. BuildHome הגיב:

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

  3. זה מה שקורה כרגע.. (עם שינוי קטן)
    מה שקורה כרגע, זה שהרג'קס מוצא רק את השם של המשתנה (בלי הספרה שאחריו) ואז כשהפונקציה עושה:


    "$1"+wanted_row

    אני מקבל את השם של המשתמש, את הספרה שהמשתנה החדש שלי הוסיף, וגם את הספרה הישנה. לדוגמא:
    משתנה מקורי: var_name1
    הספרה שאני מוסיף: 2
    המשתנה לאחר ה replace שקורה: var_name21.
    (ולא var_name12)

    אז מה אני עושה בשביל למחוק את ההמשך שאחרי ה $1?
    או אולי אני צריך להשתמש בשיטה שונה לגמרי?

    תודה רבה!

  4. BuildHome הגיב:

    אם הבנתי אותך נכון
    אז תצטרך להוסיף את הערך שאתה מעוניין להוסיף לפני התו האחרון של המשתנה (די ברור איך עושים זאת).

    הקוד שלך לא הכי ברור וגם אי אפשר לבדוק אותו מאחר וזה חלק קטן מקוד שלם.

  5. הבעיה נפתרה
    הבעיה שלי הייתה להפתר מהספרה ולשים במקומה ספרה אחרת.
    אז מה שמצאתי, זה את השימוש בסוגריים ויצירת $1,$2 וכו'.
    וזאת התוצאה:


    replace(/(details_{0,1}D*)(d)/gi,"$1"+row_num);

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

    תודה רבה על העזרה!

שלח תשובה