Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   replace не работает с переменной (https://javascript.ru/forum/events/56636-replace-ne-rabotaet-s-peremennojj.html)

Зыкин Илья 26.06.2015 10:07

replace не работает с переменной
 
Не знал как топик обозвать.
Подскажите, корректна ли регулярка, а точнее правильно ли я вставляю её в replace?
Это маленький кусочек кода из user-скрипта

var id_topics = new Array(901771,1443668,2355977,2317325,320910);

for (i=0; i<id_topics.length; i++) {
  var rs_topics = new RegExp('<tr( class=\"second\"|)><td><a href=\"forum_messages\.php\?tid=' + id_topics[i] + '.*?<\/tr>','gi');
  document.body.innerHTML = document.body.innerHTML.replace(rs_topics, "");
}


Если вставлять без переменной rs_topics, прямо текстом, всё работает.
Но мне нужно в цикле.

ksa 26.06.2015 14:56

Зыкин Илья, а просто удалить строку вера не позволяет? :blink:
Цитата:

Сообщение от Зыкин Илья
Если вставлять без переменной rs_topics, прямо текстом, всё работает.

Полный тестовый пример сделай...

Зыкин Илья 26.06.2015 16:04

Цитата:

Сообщение от ksa (Сообщение 376681)
Зыкин Илья, а просто удалить строку вера не позволяет?

Вам почту дать, чтобы вы их разработчику написали, или вы сами найдёте?

Deff 26.06.2015 21:47

Зыкин Илья,
В RegExp необходимо экранировать все спец символы, - к примеру ? и \ в [\?tid=] (причем экранировать дважды если экранировка должна быть и в самом конечном выражении)
Выведите на консоль переменную rs_topics

ruslan_mart 29.06.2015 14:21

var tr = document.querySelector('tr.second');
tr.parentNode.removeChild(tr);


Часовой пояс GMT +3, время: 22:15.