ФорумПрограммированиеJavaScript → replace() в Javascript

replace() в Javascript

  • webprogs

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 30 ноября 2011 г. 13:02

    Здравствуйте уважаемые! Требуется помощь по функции replace().
    Есть следующая функция, она вызывается по клику на кнопку, и должна выбирать определённые ссылки из документа и реплейсить их:

    function replacement() {
    var links = content.document.links;
    var re = new RegExp("(.*)hash=(.+)&PHPSESSID=(.+)&id=(.+)&n=(.+)");
    for (var i = 0; i < links.length; i++) {
    if(re.test(cont)){ // Проверка регулярки проходит, на адресах типа: http://www.domen.com/url_generate.php?hash=2e84615441c3bdfdde71983639be10ba&PHPSESSID=12e7b526ed98176608b70f627dbabd86&id=DgUMCQ,,&n=CQ,,
    alert(links); // Переменная существует и выводится алертом
    var new_str = links.replace(re,"url_generate.php?hash=$2&PHPSESSID=$3&id=12345&n=67890");
    alert(new_str); // А тут нет, и цикл прерывается на этом месте
    }
    }
    }
  • webprogs

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 30 ноября 2011 г. 13:12, спустя 10 минут 6 секунд

    Код используется в контексте написания плагина под Firefox, по-этому

    var links = content.document.links;
    Спустя 148 сек.
    Там где:

    if(re.test(cont)){

    Должно быть

    if(re.test(links)){

    По запарке попутал, но сути это не меняет, цикл прерывается после первой итерации, хотя находит ссылок 20…
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 30 ноября 2011 г. 13:19, спустя 6 минут 55 секунд

    я нихуя не понял))
    Высокоуровневое абстрактное говно
  • webprogs

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 30 ноября 2011 г. 13:21, спустя 1 минуту 38 секунд

    Короче, тест регулярки на соответствие паттерну - проходит, но регулярка при этом не реплейсит(
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 30 ноября 2011 г. 13:35, спустя 14 минут 50 секунд

    String#search пробовал вместо RegEx#test?
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 30 ноября 2011 г. 13:37, спустя 1 минуту 37 секунд

    Sinkler, так он же говорит, что тестит норм
    Высокоуровневое абстрактное говно
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 30 ноября 2011 г. 13:44, спустя 7 минут 9 секунд

    у меня все пашет… попробуй ignore case поставить в регулярку…
    Высокоуровневое абстрактное говно
  • webprogs

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 30 ноября 2011 г. 15:27, спустя 1 час 42 минуты 46 секунд

    ignore case - не помог… Ппц, какой-то..
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 30 ноября 2011 г. 15:32, спустя 4 минуты 35 секунд

    перегрузи комп XD
    Высокоуровневое абстрактное говно
  • webprogs

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 30 ноября 2011 г. 15:37, спустя 5 минут 48 секунд

    Вот че, при дебаге обнаружил: Error on line 6: links.replace is not a function…
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 30 ноября 2011 г. 15:43, спустя 5 минут 46 секунд

    блеа, а ты сразу не мог туда посмотреть?
    какого типа у тебя links?
    Высокоуровневое абстрактное говно
  • webprogs

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 30 ноября 2011 г. 15:46, спустя 2 минуты 26 секунд

    links - массив, просто пыха режет квадратные скобки с итератором… Там все правильно, мозилла видимо не понимает функцию replace(), ушел дальше читать маны…
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 30 ноября 2011 г. 15:47, спустя 1 минуту 41 секунду

    посмотри с какими типами работает реплейс
    Высокоуровневое абстрактное говно
  • webprogs

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 30 ноября 2011 г. 16:09, спустя 22 минуты 15 секунд

    Блеать!!!! Это пиздец!) решил так:

    var str = new String(links);
    str = str.replace(re,"url_generate.php?hash=$2&PHPSESSID=$3&id=12345&n=67890");
    Спустя 53 сек.
    Спасибо за помощь) Потребовалось явное приведение к типу, типа var не кошерно(
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 30 ноября 2011 г. 17:52, спустя 1 час 42 минуты 25 секунд

    webprogs, все от незнания мат части нуб
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!