Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在没有超链接的文本中检测URL并用超链接替换普通URL?_Javascript_Regex - Fatal编程技术网

Javascript 在没有超链接的文本中检测URL并用超链接替换普通URL?

Javascript 在没有超链接的文本中检测URL并用超链接替换普通URL?,javascript,regex,Javascript,Regex,我花了相当多的时间寻找解决方案或尝试一个,但我没有找到一个。所以我的用例是: 我有一个文本,它可以有简单的url(有或没有http/s),也可以有超链接的url 正则表达式应该做什么 它应该保持超链接url不变,并将非超链接url转换为超链接url 示例文本 我正在www.codeburst.com学习regex,并在尝试regex 预期解决方案 我正在从学习正则表达式,并在尝试正则表达式 我试过了 这是正则表达式,但它没有按预期工作 /((?!href).((https?:\/\/)||(ww

我花了相当多的时间寻找解决方案或尝试一个,但我没有找到一个。所以我的用例是:

我有一个文本,它可以有简单的url(有或没有http/s),也可以有超链接的url

正则表达式应该做什么 它应该保持超链接url不变,并将非超链接url转换为超链接url

示例文本 我正在www.codeburst.com学习regex,并在
尝试regex

预期解决方案 我正在从
学习正则表达式,并在
尝试正则表达式

我试过了 这是正则表达式,但它没有按预期工作

/((?!href).((https?:\/\/)||(www\.)|(mailto:)).+)/gi
正则表达式的突破如下:

  • (https?:\/\/)?
    检查
    http:\\
    https:\\
    无http
  • (www\)?
    检查
    www.
    否www.
  • 我已使用以下测试用例检查了上述正则表达式:

  • href=”https://www.regexr.com"
  • href=”http://www.regexr.com"
  • href=“mailto:demo@demo.com"

  • 您可能需要反向查找
    (?我看不出你的源文本和你的“预期解决方案”之间有什么区别,你的正则表达式在哪些方面不符合你的要求?www.codeburst.com也应该在href标签中。对问题进行了更改,现在html部分显示正确。可能重复“否”。两个问题都不同。提问者想要正则表达式,只有在url以http或https开头。我的url也可以以http、https、www和mailto开头。您的解决方案适用于不带超链接的url,但如果文本为“带超链接url”“>ABChttps://www.example.com“。对于href中的url,它应该保持原样。您可以搜索与上述url匹配的所有字符串,然后以编程方式查找不以
    href
    开头的字符串。
    (https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)
    
    (?<!href=")(((https?:\/\/)|(www\.)|(mailto:))\S+)