Javascript 在一个字符串中将多个URL中的“.”替换为[点]

Javascript 在一个字符串中将多个URL中的“.”替换为[点],javascript,regex,node.js,optimization,logic,Javascript,Regex,Node.js,Optimization,Logic,我想换新的。从下面的输入到下面的输出,转换成象[dot]这样的标记 输入 这是一个问题的测试。stackoverflow.com是学习的最佳场所。编程。测试www.wikipedia.com 输出 这是一个问题的测试。stackoverflow[dot]com是学习的最佳场所。编程。测试www[dot]wikipedia[dot]com 问题 有一个可能的测试。因为我们不能使用好的正则表达式,比如/[a-z0-9]+[\-\.]{1}[a-z0-9]+*\.[a-z]{2,5}/gi,我认为最好

我想换新的。从下面的输入到下面的输出,转换成象[dot]这样的标记

输入

这是一个问题的测试。stackoverflow.com是学习的最佳场所。编程。测试www.wikipedia.com

输出

这是一个问题的测试。stackoverflow[dot]com是学习的最佳场所。编程。测试www[dot]wikipedia[dot]com

问题

有一个可能的测试。因为我们不能使用好的正则表达式,比如/[a-z0-9]+[\-\.]{1}[a-z0-9]+*\.[a-z]{2,5}/gi,我认为最好使用下面的东西 也许我找到了解决办法; found=string.match/[a-zA-Z0-9]+\.com|co\.cc|more\.domains/gi

这工作很好,我有一个问题,以加入/取代他们的原始字符串。有类似的变通办法吗

你将如何解决这个问题?顺便说一句,我使用nodejs其他语言是可以接受的

谢谢

这将正确处理www.example.com:

tld = ["com", "org", "edu", "net"] // feel free to add more

var input = "this is a test.for a question. at www.stackoverflow.com " 
    + "the best place to learn. "
    + "programming.test wikipedia.com and windows.microsoft.edu";


re = new RegExp('\\S+\\.(' + tld.join('|') + ')\\b', 'g')

var dotted = input.replace(re, function($0) {
    return $0.replace(/\./g, "[dot]");
});

// this is a test.for a question. at www[dot]stackoverflow[dot]com the best place to learn. 
// programming.test wikipedia[dot]com and windows[dot]microsoft[dot]edu
这将正确处理www.example.com:

tld = ["com", "org", "edu", "net"] // feel free to add more

var input = "this is a test.for a question. at www.stackoverflow.com " 
    + "the best place to learn. "
    + "programming.test wikipedia.com and windows.microsoft.edu";


re = new RegExp('\\S+\\.(' + tld.join('|') + ')\\b', 'g')

var dotted = input.replace(re, function($0) {
    return $0.replace(/\./g, "[dot]");
});

// this is a test.for a question. at www[dot]stackoverflow[dot]com the best place to learn. 
// programming.test wikipedia[dot]com and windows[dot]microsoft[dot]edu

那www.stackoverflow.com呢?是的,可以算数。很抱歉,缺少信息。但是没有http://etcBut,它应该是www[dot]stackoverflow[dot]com还是www.stackoverflow[dot]com?即www[dot]stackoverflow[dot]com。顺便说一句,太快了!那www.stackoverflow.com呢?是的,可以算数。很抱歉,缺少信息。但是没有http://etcBut,它应该是www[dot]stackoverflow[dot]com还是www.stackoverflow[dot]com?即www[dot]stackoverflow[dot]com。顺便说一句,太快了!关于www[dot]wikipedia[dot].com类似/\b\S+\.com | org | edu | net\b | bwww\.\S+{3,}com | org | edu | net\b/gi,'www[dot]$1[dot]$2'仍在使用itedit*我们可以做类似于点的事情。替换/\ww\.\S+\b/gi www[dot]$1':还有别的办法吗?比如www[dot]wikipedia[dot].com/\b\S+\.com | org | edu | net\b | ww\.\S+{3,}\.com | org | edu | net\b/gi,'www[dot]$1[dot]$2'仍在使用itedit*我们可以做点点样的事情。替换/\bww\.\S+\b/gi还有别的路吗?