Замена одинаковых ссылок в тексте
Здравствуйте, у меня есть код, который весь текст урло подобный обромляет в тег <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", то уже работает не корректно, т. к. он в первый заход делает правильно замену, во второй - опять же ещё раз первую позицию пытается заменить ... Может быть есть какие-то очевидные варианты реализации .. За любую помощь буду благодарен, Спасибо. |
Цитата:
|
Он тогда после реплейса выдает регулярку ...
вот пример живой, что бы было понятней http://jsfiddle.net/qGXjh/1/ |
Я не вижу там реплейса с регуляркой, зато вижу матч по-прежнему...
|
http://jsfiddle.net/zWznS/3/
да вот с чистым реплейсом без матча .. работает, но в коде есть момент - текстовым ссылкам без http:// добавлять его ... подскажите тогда как правильно делать в данном случае, т. к. с массивом (мачем) я сделал, как тогда без него? |
... а вторым аргументом - функцию.
|
Часовой пояс GMT +3, время: 14:36. |