【问题标题】:Regex to replace only links without replacing the src attributes正则表达式仅替换链接而不替换 src 属性
【发布时间】:2018-06-06 09:09:33
【问题描述】:

我试图在渲染时用可点击的链接替换文本块中的 url。

正则表达式正在使用:

/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig

例子

This is the text i got from http://www.sample.com

应该转换成

This is the text i got from
 <a href="http://www.sample.com">http://www.sample.com</a>

问题是当文本具有 img 标签时,src 属性也被替换,这是我不想要的。

请帮助我只替换直接链接而不是 src="" 属性中的链接

谢谢

【问题讨论】:

标签: javascript regex


【解决方案1】:

在你的正则表达式的开头添加一个否定的look-behind断言,只搜索不在src="之后的字符串:

(?<!src=")

编辑:不幸的是,后向断言在 javascript 正则表达式中不起作用。或者,您可以使用如下的否定前瞻断言:

((?!src=").{0,4})

记住你需要在替换中使用匹配的字符串(否则你会删除http://之前的4个字符)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 2012-05-26
    • 2015-07-06
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    相关资源
    最近更新 更多