Замена 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"> Помогите, я уже вторые сутки маюсь%) |
Ребята, выручайте), я просто дальше бессилен)
|
'ололо лол <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">') |
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); |
Все. Сделал, просто апечатка в первом варинате была. Спасибо
|
Часовой пояс GMT +3, время: 16:57. |