javascript - 不能将目标属性添加到锚点
问题描述
我正在尝试将文本 URL 转换为可点击的 html 链接,一切正常,但我无法添加属性(目标)。我没有收到任何错误。
这是代码:
let text= 'https://www.google.com';
let exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
let text1=text.replace(exp, "<a href='$1'>$1</a>");
let exp2 =/(^|[^\/])(www\.[\S]+(\b|$))/gim;
let message = text1.replace(exp2, '$1<a target="_blank" href="http://$2">$2</a>');
输出:<a href="https://www.google.com">https://www.google.com</a>
解决方案
不需要两次通行证。只需在初始替换中包含目标:
let text= 'https://www.google.com';
let exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
let text1=text.replace(exp, '<a target="_blank" href="$1">$1</a>');
// -------------------------^---^^^^^^^^^^^^^^^------^--^-------^
console.log(text1);
由于您似乎想要双引号_blank
(没有必要),我将替换字符串周围的引号更改为'
(并使用"
around href
)。
推荐阅读
- python - Python getopt - 如何检查不同可能的参数组合?
- javascript - Promise... 返回类型而不是 Promise
- python - 尝试对字母数字坐标进行排序
- html - CSS - 第二列内容放入第一列
- sql - sql for 循环查询到普通查询
- javascript - 如何防止获取相同输入值的图像?
- azure - 如何将多个 Azure Functions HttpTrigger 排队以防止内存错误?
- powershell - 突然收到“无法获得Lros Token”。运行 Powershell 命令时
- android - RxJava:如何转换 Single
单身 - >
- sql - SQL:如何将查询结果保存为新的临时表?