-
יש לי לולאה בjs שתוקעת את הדף (היא לא נגמרת, כנראה)
האם מישהו יכול לעזור?
הלולאה:const typesArray = ["א", "ב", "ג", "ד", "ה", "ו", "ז", "ח", "ט", "י"]; for (let t of typesArray) { let regex = new RegExp(`@|${t}@|`, "g"); $('[component="topic/title"], [component="topic/header"]').each((i, elm)=>{ let $elm = $(elm); let htmlContent = $elm.html(); $elm.html(htmlContent.replace(regex,'<button>12345</button>')); }); }
זה אמור להחליף את
@|א@|
,@|ב@|
וכו' ל<button>12345</button>
תודה רבה!!! -
@נ-נח אני אגיד לך את הפתרון, אשמח אם מישהו יסביר בדיוק מה הבעיה... (כלומר, אני יודע פחות או יותר באיזה כיוון הבעיה אבל יש משהו שעוד לא ברור לי)
הפתרון הוא להחליף את הרג'קס לזה:
`@\\|${t}@\\|`
הסבר חלקי:
התו|
ברג'קס הוא תו מיוחד. אם אתה רוצה לחפש|
צריך להוסיף לפניו\
. אבל התו\
הוא מיוחד במחרוזות JS... אז צריך להוסיף לפניו עוד\
.
הרג'קס שכתבת בלי הוספת ה-\
הוא החלפה שלא מסתיים (?) ולכן הדף קופא
מה שלא ברור לי זה למה זה לא מסתיים. (אולי אני טועה וזה כן מסתיים אבל זה יקר מאוד מאוד) -
קוד נכון יותר:
let regex = new RegExp(`@\\|[אבגדהוזחטי]@\\|`, "g"); $('[component="topic/title"], [component="topic/header"]').each((i, elm)=>{ let $elm = $(elm); let htmlContent = $elm.html(); $elm.html(htmlContent.replace(regex,'<button>12345</button>')); });
ליבי אומר לי שיש דרכים טובות יותר להשיג את המטרה אבל זה רק תחושת לב ואין לי עובדות בשביל להציע את הדרכים האלה.
-