Javascript JS regex-convert";任何;指向链接的纯文本主机名/url/ip

Javascript JS regex-convert";任何;指向链接的纯文本主机名/url/ip,javascript,regex,Javascript,Regex,我一直在寻找一个JS regexp,它可以将纯文本url或主机名转换为可点击的链接,但我找到的脚本都不符合我的要求。不幸的是,我在正则表达式方面很差劲,无法修改表达式以使其按我所希望的方式工作 我希望转换为链接的纯文本是: 任何与http、ftp、mailto或 文件: domain.tld[:port][path][file][querystring] any.sub.domain.tld[:port][path][file][querystring] 0/255.0/255.0/255.0/

我一直在寻找一个JS regexp,它可以将纯文本url或主机名转换为可点击的链接,但我找到的脚本都不符合我的要求。不幸的是,我在正则表达式方面很差劲,无法修改表达式以使其按我所希望的方式工作

我希望转换为链接的纯文本是:

  • 任何与http、ftp、mailto或 文件:
  • domain.tld[:port][path][file][querystring]
  • any.sub.domain.tld[:port][path][file][querystring]
  • 0/255.0/255.0/255.0/255[:端口][路径][文件][查询字符串]
  • locahost[:端口][路径][文件][查询字符串]
  • [*]=可选


    非常感谢您的帮助

    如果你能忍受误报,比如
    某物.notavalidtld
    999.999.999
    匹配,那么你要寻找的可能是这样的。(否则,它将被删除。)

    从字符串的开头开始匹配

    ^(
    
    匹配以http/https/ftp/开头的任何内容

    ((https?|ftps?|mailto|file):.*?)
    
    匹配以下所有选项

    |
    
    可选地匹配http/https/ftp/。。。后跟
    和至少一个
    /

    ((https?|ftps?|mailto|file):/+)?
    
    匹配IP地址

    (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
    
    …或域(具有可选用户名/密码,也与电子邮件地址匹配)

    。。。或
    localhost

    |localhost)
    
    (可选)后跟端口号

    (:\d+)?
    
    可选后跟任何路径/查询字符串

    (/.*)?
    
    确保字符串到此结束

    )$
    
    上述所有部分应连接在一起,中间不得有任何空格


    我没有对它进行全面测试,所以我可能遗漏了一些东西。但至少你有一个出发点。

    如果你可以忍受误报,比如
    什么。notavalidtld
    999.999.999
    匹配,那么你要寻找的可能是这样的。(否则,它将被删除。)

    从字符串的开头开始匹配

    ^(
    
    匹配以http/https/ftp/开头的任何内容

    ((https?|ftps?|mailto|file):.*?)
    
    匹配以下所有选项

    |
    
    可选地匹配http/https/ftp/。。。后跟
    和至少一个
    /

    ((https?|ftps?|mailto|file):/+)?
    
    匹配IP地址

    (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
    
    …或域(具有可选用户名/密码,也与电子邮件地址匹配)

    。。。或
    localhost

    |localhost)
    
    (可选)后跟端口号

    (:\d+)?
    
    可选后跟任何路径/查询字符串

    (/.*)?
    
    确保字符串到此结束

    )$
    
    上述所有部分应连接在一起,中间不得有任何空格


    我没有对它进行全面测试,所以我可能遗漏了一些东西。但至少你有一个起点。

    你想在哪里找到这些纯文本?整个页面或…基本上是为了保存一个“位置”,这个位置可以是一个地方,比如“纽约”,但在大多数情况下是一个url或主机名。所以整个纯文本将是一个链接,或者根本没有链接。你想在哪里找到这个纯文本?整个页面或…基本上是为了保存一个“位置”,这个位置可以是一个地方,比如“纽约”,但在大多数情况下是一个url或主机名。因此,整个纯文本将是一个链接,或者根本没有链接。谢谢Henko,我明天会试试这个!:)谢谢你,亨科,我明天就试试这个!:)