Мне нужно заменить все между :
а ,
с |
многократно.
У меня есть список серверов, например 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
.
Как я могу заменить все случаи?
/:.*,/
жадностью :127.0.0.1,server2:127.0.0.2
. Помните, что квантификаторы, такие как *
будут соответствовать столько, сколько они могут, при этом позволяя остальной части шаблона соответствовать.
Рассмотрим вместо [^,]
вместо .
, Это позволит исключить запятые из соответствия и, следовательно, ограничить соответствие только тому региону, который вы хотите удалить.
resultList = serverList.replace(/:[^,]*,/g, '|')
Вы могли бы взять ленивый подход ?
(Соответствует как можно меньшему количеству символов).
var string = 'server1:127.0.0.1,server2:127.0.0.2,server3:127.0.0.3';
console.log(string.replace(/:.*?(,|$)/g, '|'));
[^,]*
вместо.*