JavaScript替换功能的后向替代方案

时间:2018-10-30 20:37:18

标签: javascript regex firefox google-chrome-extension negative-lookbehind

我想将文本中的链接转换为锚标记。如果已经有一个锚标签,我们不应该触摸它。

var exp = /\b((?<!["'>](?:http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/|ftp:\/\/)([;&a-z\/\d%@_.?,~+&:=-]+)?(?!['"<]))\b/gi;

myString = myString.replace(exp, '<a target="_blank" href="$1">$1</a>');

此代码在Chrome中工作正常,因为最新的Chrome在正则表达式中支持反向查找,但在FireFox中不支持。我需要一个可以在两种浏览器上都可以使用的通用正则表达式。

示例:

输入:

Here https://www.google.com is a link.Also <a href="https://www.yahoo.com">https://www.yahoo.com</a> a link

输出:

Here <a href="https://www.google.com">https://www.google.com</a> is a link. Also <a href="https://www.yahoo.com">https://www.yahoo.com</a> a link

0 个答案:

没有答案