Javascript RegExp以字符串形式获取除链接HREF之外的所有URL
我正在尝试形成一个Javascript RegExp以字符串形式获取除链接HREF之外的所有URL,javascript,regex,Javascript,Regex,我正在尝试形成一个RegExp来用链接元素替换字符串中的所有URL,除了已经是现有链接的href属性的URL。 此Regexp将所有URL(包括hrefs)转换为新的锚元素: /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig 这是不可取的 如何仅替换不是现有链接元素的href的URL 注: 根据许多文件,Regex和RegExp都是相同和有效的。 ,您需要确保您不在dfg
RegExp
来用链接元素替换字符串中的所有URL,除了已经是现有链接的href
属性的URL。此Regexp将所有URL(包括
href
s)转换为新的锚元素:
/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig
这是不可取的如何仅替换不是现有链接元素的
href
的URL
注:根据许多文件,Regex和RegExp都是相同和有效的。
,您需要确保您不在
dfg fgxc zcv内
不要像这样用regexp解析HTML,用DOM解析它,然后迭代并收集。@您提供的ali链接工作正常。请使用SO ide编写js代码。@AvinashRaj我有2个链接是我的HTML代码,其href在使用RegExp:a link元素作为另一个link元素的href属性值进行解析后转换为link元素。这显然是不正确的。@dandavis请你解释一下好吗?@AvinashRaj将问题和代码放在一个地方是好的,但我认为由于SO ide的UX设计不好,结果降低了问题的可读性。不是吗?我使用了这个RegExp,不幸的是它不能正确处理多个空格分隔的URL。我试图修复它,但我不擅长正则表达式。怎么修?我刚检查过,它好像在工作。你能提供一个示例文本吗?
var urlToLinkExp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])(?![^<>]*>(?:(?!<\/?a\b).)*<\/a>)/ig;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^