שלח תשובה

זירת השאלות

613
צפיות
8
תשובות

איך עושים רפלייס יותר מפעם אחת …

,‏ 27 במאי, 2005

לדוגמה , הנה הקוד


<div id="GG">ABCD ABCD ABCD ABCD ABCD ABCD</div>
<!– page end scripts js//  –><script type="text/javascript"><!–
var ggstring=new String (document.getElementById('GG').innerHTML);
var ggtext=ggstring.replace('ABCD','EFGH');
document.getElementById('GG').innerHTML=ggtext;
//  –></script>


אז אני מעוניין שהתוצאה תהיה:
EFGH EFGH EFGH EFGH EFGH EFGH
ולא:
EFGH ABCD ABCD ABCD ABCD ABCD

מה צריך להוסיף ?

תגיות:

8 תשובות

  1. BuildHome הגיב:

    לולאה
    נסה משהו כזה:
    while(ggstring.indexOf('ABCD')>-1) var ggtext = ggstring.replace('ABCD','EFGH')

  2. ניר טייב הגיב:

    אתה צריך לזכור שהפרמטר הראשון
    הוא אובייקט RegExp ולא מחרוזת. ברגע שאתה מכניס מחרוזת מתבצע Casting ע"י eval לאובייקט RegExp. וזו פעולה יקרה (מבחינת ביצועים).


    ggtest = ggstring.replace(/ABCD/g, "EFGH");

    מלבד זאת innerHTML מחזיר לך מחרוזת, אינך צריך להשתמש בבני של מחלקת String (כלומר לא להשתמש ב-new אלא ישר להשים את המחרוזת בתוך המשתנה).

  3. MCG הגיב:

    שאלה פשוטה ,שהסתבכתי …
    למה הקוד הזה לא עובד לי:
    var gg.g='11';
    document.write(gg.g);

  4. ניר טייב הגיב:

    שמות של משתנים לא יכולים להכיל
    תווים שהם לא קו תחתון או אותיות לטיניות או מספרים.

שלח תשובה