gpt4 book ai didi

javascript - 如何使用带条件的正则表达式替换文本?

转载 作者:行者123 更新时间:2023-11-29 20:12:39 25 4
gpt4 key购买 nike

我想将纯文本格式的链接替换为 html 格式。

但我遇到的问题是,我不知道如何添加 http://如果原始链接不存在,新替换的前缀。

var text        = "google.com and http://google.com";
var pattern = /(\b((https?)\:\/\/)?[A-Za-z0-9]+\.(com|net|org))/ig;
text = text.replace(pattern,"<a href='$1'>$1</a>");

我的意思是:

  1. 如果:google.com将被替换<a href="http://google.com">google.com</a>
  2. 如果:http://google.com将被替换<a href="http://google.com">http://google.com</a>

最佳答案

使用 overload of String.replace that takes a function :

var text = "google.com and http://google.com";
var pattern = /(\b((https?)\:\/\/)?[A-Za-z0-9]+\.(com|net|org))/ig;

text = text.replace(pattern, function (str, p1)
{
var addScheme = p1.indexOf('http://') === -1
&& p1.indexOf('https://') === -1;

return '<a href="' + (addScheme ? 'http://' : '') + p1 + '">' + p1 + '</a>';
});

// text is:
// '<a href="http://google.com">google.com</a> and <a href="http://google.com">http://google.com</a>'

关于javascript - 如何使用带条件的正则表达式替换文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8651778/

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