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