Замена 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, время: 11:46. |