Javascript 在没有超链接的文本中检测URL并用超链接替换普通URL?
我花了相当多的时间寻找解决方案或尝试一个,但我没有找到一个。所以我的用例是: 我有一个文本,它可以有简单的url(有或没有http/s),也可以有超链接的url 正则表达式应该做什么 它应该保持超链接url不变,并将非超链接url转换为超链接url 示例文本 我正在www.codeburst.com学习regex,并在Javascript 在没有超链接的文本中检测URL并用超链接替换普通URL?,javascript,regex,Javascript,Regex,我花了相当多的时间寻找解决方案或尝试一个,但我没有找到一个。所以我的用例是: 我有一个文本,它可以有简单的url(有或没有http/s),也可以有超链接的url 正则表达式应该做什么 它应该保持超链接url不变,并将非超链接url转换为超链接url 示例文本 我正在www.codeburst.com学习regex,并在尝试regex 预期解决方案 我正在从学习正则表达式,并在尝试正则表达式 我试过了 这是正则表达式,但它没有按预期工作 /((?!href).((https?:\/\/)||(ww
尝试regex
预期解决方案
我正在从
学习正则表达式,并在
尝试正则表达式
我试过了
这是正则表达式,但它没有按预期工作
/((?!href).((https?:\/\/)||(www\.)|(mailto:)).+)/gi
正则表达式的突破如下:
(https?:\/\/)?
检查http:\\
或https:\\
或无http
(www\)?
检查www.
或否www.
(?我看不出你的源文本和你的“预期解决方案”之间有什么区别,你的正则表达式在哪些方面不符合你的要求?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+)