在javascript中将子字符串替换多次

时间:2018-06-11 21:35:49

标签: javascript replace substring

我需要多次以:替换,|之间的所有内容。
我有一个像server1:127.0.0.1,server2:127.0.0.2,server3:127.0.0.3这样的服务器列表。

基本上,我需要删除所有IP并用一些|替换它们。

到目前为止,我能够做到这一点:

resultList = serverList.replace(/:.*,/g, '|')

问题是结果列表是server1|server3:127.0.0.3

如何更换每次出现?

2 个答案:

答案 0 :(得分:5)

/:.*,/贪婪地匹配:127.0.0.1,server2:127.0.0.2。请记住,像*这样的量词会尽可能地匹配 ,同时仍允许模式的其余部分匹配。

考虑指定[^,]而不是.。这将排除逗号匹配,因此将匹配限制为您要删除的区域。

resultList = serverList.replace(/:[^,]*,/g, '|')

答案 1 :(得分:2)

您可以使用?(与尽可能少的字符匹配)进行懒惰的处理。



var string = 'server1:127.0.0.1,server2:127.0.0.2,server3:127.0.0.3';

console.log(string.replace(/:.*?(,|$)/g, '|'));