Показать сообщение отдельно
  #1 (permalink)  
Старый 04.11.2013, 13:11
Интересующийся
Отправить личное сообщение для TylerDurden Посмотреть профиль Найти все сообщения от TylerDurden
 
Регистрация: 23.10.2012
Сообщений: 18

Замена одинаковых ссылок в тексте
Здравствуйте, у меня есть код, который весь текст урло подобный обромляет в тег <a>.

var mess = data['msgText'];

var reg = /((([A-Za-z]{3,9}):\/\/)*?([-;:&=\+\$,\w]+@{1})?(([-A-Za-z0-9]+\.)+[A-Za-z]{2,3})(:\d+)?((\/[-\+~%\.\w]+)?\/?([&?][-\+=&;%@\.\w]+)?(#[\w]+)?)?)/igm
pregMatch = mess.match(reg);

var regHttp = /http/igm;

for(var key in pregMatch){
	var val = pregMatch[key];
	if(regHttp.test(val) == true){
		mess = mess.replace(val, '<a href="' + val + '>' + val + '</a>');
	}else{
		mess = mess.replace(val, '<a href="http://' + val + '>' + val + '</a>');
	}
}



Проблема в том, что передавая в mess сообщение типа
"ya.ru, www.google.com" обрамляются в тег и отрабатывают нормально

НО

если в mess присутствует например две полностью одинаковых ссылки типа "www.google.com, www.google.com", то уже работает не корректно, т. к. он в первый заход делает правильно замену, во второй - опять же ещё раз первую позицию пытается заменить ...

Может быть есть какие-то очевидные варианты реализации ..

За любую помощь буду благодарен,
Спасибо.

Последний раз редактировалось TylerDurden, 04.11.2013 в 13:14.
Ответить с цитированием