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

标签 javascript regex

演示: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 以-a-file-path-that-looks-like-this 结尾时。

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

最佳答案

使用更复杂的正则表达式来查找 URL,例如 this answer将解决您的两个问题。

为了解释您遇到这些问题的原因,问题 1 是因为您的正则表达式要求 URL 以 http://或 https://开头; https?:\/\/ 部分未与问号分组以使其可选。问题2的原因是路径允许的字符不包含减号。

使用预构建的复杂正则表达式来处理多种类型的 URL 是一个不错的选择,依靠其他人尝试处理所有可能情况的工作。

关于javascript - 使用正则表达式查找文本字符串中以 'www' 开头并以 'file-path' 结尾的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23319721/

相关文章:

带闭包和 IIFE 的 JavaScript 计数器

javascript - 正则表达式在字符串中多次替换开始/结束符号

c++ - 在带有非 ASCII 注释的 C++ 代码中查找非 ASCII 字符的出现

javascript - 用单个逗号替换所有出现的双逗号

javascript - 理解 JavaScript originalEvent

java - 有谁知道如何提取我的日期字符串并更改格式?

php - 用于解析 .strings 文件的正则表达式

javascript - 全局正则表达式匹配停止中间字符串

javascript - ExtJS - 向上打开的下拉菜单

javascript - 如何查找 SoundCloud 的轨道信息和 client_id