gpt4 book ai didi

javascript - 如何将空格填充的网址变成链接

转载 作者:行者123 更新时间:2023-11-28 20:51:01 25 4
gpt4 key购买 nike

我有以下代码,用于将文本中的 http URL 转换为 anchor 标记。它正在寻找以 http 开头、周围有空格(或输入的开头/结尾)的任何内容

function linkify (str) {
var regex = /(^|\s)(https?:\/\/\S+)($|\s)/ig;
return str.replace(regex,'$1<a href="$2" target="_blank">$2</a>$3')
}

// This works
linkify("Go to http://www.google.com and http://yahoo.com");

// This doesn't, yahoo.com doesn't become a link
linkify("Go to http://www.google.com http://yahoo.com");

如果两个链接之间只有一个空格,则它不起作用。我假设这是因为两个链接之间的空格不能用于匹配两个 URL,在第一次匹配之后,URL 后面的空格已被消耗。

玩:http://jsfiddle.net/NgMw8/

有人可以建议一种正则表达式的方法吗?我可以自己扫描字符串,寻找正则表达式的方法(或者不需要我自己扫描字符串并自己构建新字符串的某种方法。

最佳答案

不要捕获最终的\s。这样,第二个 url 将根据需要匹配前面的 \s:

function linkify (str) {
var regex = /(^|\s)(https?:\/\/\S+)/ig;
return str.replace(regex,'$1<a href="$2" target="_blank">$2</a>')
}

http://jsfiddle.net/NgMw8/3/

关于javascript - 如何将空格填充的网址变成链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12433574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com