Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.06.2014, 14:50
Новичок на форуме
Отправить личное сообщение для r3l0c Посмотреть профиль Найти все сообщения от r3l0c
 
Регистрация: 27.06.2014
Сообщений: 5

Замена html элементов - регулярка
В общем есть к примеру такой текст:
ололо лол <img src="/a/b/c/../lold.gif"> ку-ку <img src="/a/b/c/../lold3333.gif">  123333

Надо получить "ололо лол :!lold:! ку-ку :!lold3333!: 123333"
Запилил регулярку
var re = new RegExp('(<img(.*src="[^"]*/(.*?)\.gif")>)', 'gim');
        text = text.replace(re, ":!$3!:");

Но работает неверно - все потирает и возвращает последнюю замену.

Далее надо обратно спарсить "ололо лол :!lold:! ку-ку :!lold3333!: 123333" в исходный текст с img, есть регулярка
var re = new RegExp("(:!(.*)!:)", "i");
text = text.replace(re, "<img src=\"$2.gif\">");

Но она тоже косячит--
<img src="/шьп/image3!: ололо :!image5.gif">

Помогите, я уже вторые сутки маюсь%)
Ответить с цитированием
  #2 (permalink)  
Старый 27.06.2014, 19:29
Новичок на форуме
Отправить личное сообщение для r3l0c Посмотреть профиль Найти все сообщения от r3l0c
 
Регистрация: 27.06.2014
Сообщений: 5

Ребята, выручайте), я просто дальше бессилен)
Ответить с цитированием
  #3 (permalink)  
Старый 27.06.2014, 19:45
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,577

'ололо лол <img src="/a/b/c/../lold.gif"> ку-ку <img src="/a/b/c/../lold3333.gif">  123333'
.replace(/<img.*?src=".*?([^/.]+).gif".*?>(.*?)<img.*?src=".*?(\1.*?).gif".*?>/, ':!$1!:$2:!$3!:')

'ололо лол :!lold!: ку-ку :!lold3333!:  123333'
.replace(/:!(.*?)!:/g, '<img src="/a/b/c/../$1.gif">')
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 27.06.2014, 20:11
Новичок на форуме
Отправить личное сообщение для r3l0c Посмотреть профиль Найти все сообщения от r3l0c
 
Регистрация: 27.06.2014
Сообщений: 5

Aetae,
Спасибо, подкинул идею. В итоге запилил так
var re = new RegExp('(.*)(<img(.*src="[^"]*/(.*?)\.gif")>)(.*)', 'i');

        do {
            text = text.replace(re, '$1 :!$4:! $5');
        } while (text.search(re) !== -1);
        return text;

Работает как надо. Второй вариант попробовал запилить аналогично--не форцает. Не могу понять где ошибка.
var re = new RegExp("(.*):!(.*?)!:(.*)", "i");
        do {
            text = text.replace(re, "$1<img src=\"$2.gif\">$3");
        } while (text.search(re) !== -1);
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2014, 20:13
Новичок на форуме
Отправить личное сообщение для r3l0c Посмотреть профиль Найти все сообщения от r3l0c
 
Регистрация: 27.06.2014
Сообщений: 5

Все. Сделал, просто апечатка в первом варинате была. Спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена html у div с эффектом chesminsky jQuery 5 25.06.2014 15:53
Замена элементов в массиве bdoxhobehue Общие вопросы Javascript 5 15.06.2014 11:35
Замена html на JvaScript sedoi Общие вопросы Javascript 7 04.05.2011 19:47
Замена текста в атрибуте HTML тега, например часть url vasa666 Общие вопросы Javascript 6 24.02.2011 10:18
Кто чем пользуется при создании html элементов vflash Общие вопросы Javascript 14 24.08.2009 21:12