【发布时间】:2010-02-01 14:02:53
【问题描述】:
我目前正在使用以下代码在页面上的 div 中搜索 URL 并将它们替换为标签。
但是,当我们在 div 中嵌入标签时,它会弄乱这些标签中的链接。
function replaceURLWithHTMLLinks(text) {
return text.replace(/(ftp|http|https|file):\/\/[\S]+(\b|$)/gim,'<a href="$&" class="my_link" target="_blank">$&</a>').replace(/([^\/])(www[^ <]+(\b|$))/gim,'$1<a href="http://$2" class="my_link" target="_blank">$2</a>');
}
$(document).ready(function(){
var htmlStr = $("div.content-a").html();
var htmlStrAfter = replaceURLWithHTMLLinks(htmlStr);
$("div.content-a").html(htmlStrAfter);
});
谁能告诉我们如何排除任何前面有 " 或 ' 的 http://...?
还是类似的?
【问题讨论】:
-
如果你有 JavaScript,为什么不使用 DOM 而不是 HTML 文本呢?正则表达式 HTML 解析已经够难了,而且 JS 没有lookbehind,这让你的要求有点讨厌。
标签: javascript regex