我正在尝试在渲染时用可点击的链接替换文本块中的网址。
正则表达式正在使用:
/(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=" 属性中的链接
谢谢
在正则表达式的开头添加一个否定的后视断言,以仅搜索不在src="
之后的字符串:
(?<!src=")
编辑:不幸的是,后视断言在javascript正则表达式中不起作用。或者,您可以使用如下否定的前瞻断言:
((?!src=").{0,4})
请记住,您需要在替换中使用匹配的字符串(否则您将在http://
之前删除 4 个字符(。