【问题标题】:regex to replace link正则表达式替换链接
【发布时间】:2012-11-27 23:32:25
【问题描述】:

您好,我有旧的替换纯 url 来链接问题。 我正在使用 Jeff Roberson 的代码中的 linkify, 但由于它不支持伪网址(www.),我试图将其添加到我发现的另一个正则表达式中。 到目前为止,我一直坚持这一点

  var replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
  text.replace(pseudoUrlPattern, '$1<a target="_blank" href="http://$2">$2</a>')

文本可以是一个html标签,当链接有一个没有任何空格的关闭p标签时,它似乎包含在链接中!我试过向前看,但似乎我没有做对。 一个示例文本是

 <p>www.something.here/something</p>

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    这样的事情怎么样:

    var text = "<p>www.something.here/something</p>";
    var replacePattern2 = /(.*?)(((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+))((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/gim;
    text.replace(replacePattern2, '$1<a target="_blank" href="$4">$4</a>')
    

    基于此正则表达式:http://blog.mattheworiordan.com/post/13174566389/url-regular-expression-for-links-with-or-without-the

    【讨论】:

    • 您好,谢谢,它快到了,但是 www.something.com 变成了 domain/www.something.com 的链接,而不是 http:// 如果没有协议,我希望它添加 http,否则我希望它使用文本中的那个。此外,它将 some.thing@else.com 形式的电子邮件更改为 domain/thing@else.com
    • 我认为如果我们取消对电子邮件的支持,它将起作用。之后我有电子邮件正则表达式.. var emailAddressPattern = /(([a-zA-Z0-9_\-\.]+)@[a-zA-Z_]+?(?:\.[a-zA-Z ]{2,6}))+/gim;在我运行 replacePattern2 之后,我将运行 emailAddressPattern.. 所以如果我们能以某种方式将这两者结合起来,或者排除电子邮件模式,我认为它会起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 2013-05-13
    • 1970-01-01
    相关资源
    最近更新 更多