проще, если вы просто сделаете функцию, возвращающую только очищенный HTML, поэтому:
function replaceURLWithHTMLLinks(text) {
var exp = /(www[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
return text.replace(exp,"$1");
}
, а затем просто добавьте раздел href и html отдельно:
href = replaceURLWithHTMLLinks(stringInput);
var link = $(document.createElement('a')).attr('href', 'http://'+href)
.addClass('highlite')
.html(href.replace(/\/[^.]+$/gi, ''));
$(this).html(link);
, который просто создаст новый объект ссылки, добавит правильный href, который вы вернете, с вашей функцией, а затем заменит все конечные символы без точек на '' (в вашем случае это всегда будет / foo / bar)
Кроме того, это намного лучше, чем в предыдущем примере, поскольку он менее интенсивно использует JavaScript (вам не нужно снова искать «a», а затем изменять его свойства, вы просто создаете его с этими свойствами с самого начала)