为了账号安全,请及时绑定邮箱和手机立即绑定

如何用链接替换普通URL?

如何用链接替换普通URL?

拉丁的传说 2019-05-30 09:44:29
如何用链接替换普通URL?我使用下面的函数来匹配给定文本中的URL,并将它们替换为HTML链接。正则表达式工作得很好,但目前我只替换第一场比赛。我怎样才能替换所有的URL?我想我应该用主管但我真的不知道该怎么做。function replaceURLWithHTMLLinks(text) {     var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i;     return text.replace(exp,"<a href='$1'>$1</a>"); }
查看完整描述

4 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

我对Travis的代码做了一些小小的修改(只是为了避免任何不必要的重声明-但它对我的需求非常有用,所以工作非常好!):

function linkify(inputText) {
    var replacedText, replacePattern1, replacePattern2, replacePattern3;

    //URLs starting with http://, https://, or ftp://
    replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
    replacedText = inputText.replace(replacePattern1, '<a href="$1" target="_blank">$1</a>');

    //URLs starting with "www." (without // before it, or it'd re-link the ones done above).
    replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
    replacedText = replacedText.replace(replacePattern2, '$1<a href="http://$2" target="_blank">$2</a>');

    //Change email addresses to mailto:: links.
    replacePattern3 = /(([a-zA-Z0-9\-\_\.])+@[a-zA-Z\_]+?(\.[a-zA-Z]{2,6})+)/gim;
    replacedText = replacedText.replace(replacePattern3, '<a href="mailto:$1">$1</a>');

    return replacedText;}


查看完整回答
反对 回复 2019-05-30
  • 4 回答
  • 0 关注
  • 1522 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信