使用正则表达式查找文本字符串中以 'www' 开头并以 'file-path'结尾的 URL



演示:http://jsfiddle.net/RH8f6/52/

$('document').ready(function(){
$('#content').each(function(){
    var str = $(this).html();
    var find_url = /(https?://([-w.]+)+(:d+)?(/([w/_.]*(?S+)?)?)?)/ig;
    var find_email = /([.w]+@[a-zA-Z_]+?.[a-zA-Z]{2,6})/gim;
    var replaced_text = str.replace(find_url, "<a href='$1' target='_blank'>$1</a>").replace(find_email, '<a href="mailto:$1">$1</a>');

    $(this).html(replaced_text);
});
});

我的正则表达式可以在文本中查找URL(并将其转换为超链接),但有两种情况除外:

1) 当URL以"www"开头时2) 当URL以一个文件结尾时,它看起来像是this。

我不知道如何开始解决这个问题。关于我应该查看哪些资源,有什么建议吗?

使用更复杂的正则表达式来查找URL,例如在这个答案中,将解决这两个问题。

为了解释为什么会出现这些问题,问题1是因为正则表达式要求URL以http://或https://开头;部分CCD_ 1不与问号分组以使其可选。问题2的原因是路径允许的字符不包括减号

使用预先构建的复杂正则表达式来处理多种类型的URL是一个很好的选择,这取决于其他人试图处理所有可能情况的工作。

相关内容

最新更新