Заменить несколько раз подстроку в JavaScript

1

Мне нужно заменить все между : а , с | многократно.
У меня есть список серверов, например 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.

Как я могу заменить все случаи?

Теги:
replace
substring

2 ответа

5
Лучший ответ

/:.*,/ жадностью :127.0.0.1,server2:127.0.0.2. Помните, что квантификаторы, такие как * будут соответствовать столько, сколько они могут, при этом позволяя остальной части шаблона соответствовать.

Рассмотрим вместо [^,] вместо . , Это позволит исключить запятые из соответствия и, следовательно, ограничить соответствие только тому региону, который вы хотите удалить.

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

Вы могли бы взять ленивый подход ? (Соответствует как можно меньшему количеству символов).

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню