正则表达式只替换链接而不替换src属性

时间:2018-06-06 09:09:34

标签: javascript regex

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

正则表达式正在使用:

/(\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 =&#34;&#34;中的链接。属性

谢谢

1 个答案:

答案 0 :(得分:0)

在正则表达式的开头添加否定的后置断言,仅搜索不在src="之后的字符串:

(?<!src=")

编辑:不幸的是,后台断言在javascript正则表达式中不起作用。或者,您可以使用负面预测断言,如下所示:

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

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