将字符串中的 url 替换为 href 链接 - 适用于多种地址类型
Replace url's in a string with href links - for multiple address types
我已经使用这个解决方案有一段时间了:
function linkify(text) {
var exp = /('b(https?|ftp|file):'/'/[-A-Z0-9+&@#'/%?=~_|!:,.;]*[-A-Z0-9+&@#'/%=~_|])/ig;
return text.replace(exp, "<a href='$1' target='_blank'>$1</a>");
}
但是,此解决方案仅转换字符串中的某些类型的URL,甚至不适用于www.google.com
之类的链接(需要以http://
开头(
因此,我想问是否有更合适的解决方案,最好是可以转换google.com
的解决方案; mail.google.com
,甚至del.icio.us
以及电子邮件地址。
我是不是找得太多了?我们可以在大多数地方实时看到这种情况发生 - 正确的路线是什么?
看看这个正则表达式: http://www.regexr.com/39suh将http
等放在匹配的组中,并要求在 url 中.
。我确定这不是最理想的解决方案,但它工作正常......
('b((https?|ftp|file):'/'/)?[A-Z0-9.]*'.[-A-Z0-9+&@#'/%=~_.|]+)
相关文章:
- AddEventListener适用于浏览器,但不适用于Android
- 查找仅适用于原始图像的图像放大算法的名称
- 如何在category.php中执行jquery,这应该适用于类别wordpress中的每个帖子
- Web编程,简单但适用于机器人项目
- JavaScript不适用于internet explorer和Firefox,但适用于谷歌
- Jquery事件处理程序仅适用于匿名函数
- jQuery调整大小函数只适用于窗口
- 火灾在卸载前确认警报仅适用于外部站点
- EmberJS-适用于各种模型的适配器动态名称空间
- Facebook共享链接适用于用户,但不适用于粉丝页面管理员
- jQuery-适用于移动设备的多级菜单
- 循环中的切换脚本只适用于第一次迭代
- 为什么setTimeout适用于无休止的递归调用
- 我未保存的更改指令需要适用于具有不同名称的所有表单
- 适用于多种浏览器的Selenium-需要能够执行javascript的webDriver
- 点击复选框并显示“;“新闻”;仅适用于该类型的类别
- 将字符串中的 url 替换为 href 链接 - 适用于多种地址类型
- ie-Ajax请求适用于所有浏览器,但ie-content类型已更改
- Jquery - info/docs关于适用于表单中不同类型输入元素的属性列表
- 适用于多种类型用户的猫鼬模型