Заменить несколько раз подстроку в JavaScript - PullRequest
0 голосов
/ 12 июня 2018

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

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

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

console.log(string.replace(/:.*?(,|$)/g, '|'));
0 голосов
/ 12 июня 2018

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

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

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