Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Замена разделителя между цифрами (https://javascript.ru/forum/misc/62399-zamena-razdelitelya-mezhdu-ciframi.html)

chatt 08.04.2016 13:59

Замена разделителя между цифрами
 
Есть поле с текстом, в нем по нескольку раз встречаются символ точка с запятой ;
Нужно заменить ВСЕ ; находящиеся только МЕЖДУ ЦИФРАМИ на запятые.

Подскажите, пожалуйста, как будет выглядеть replace()?

Dilettante_Pro 08.04.2016 15:56

alert("ab;01;41:cd;22;a0;0".replace(/(\d);(\d)/g, function (str, p1, p2, offset, s) { return p1 + "," + p2; }));

рони 08.04.2016 16:23

Dilettante_Pro,
alert("ab;01;41:cd;22;a0;0".replace(/(\d);(\d)/g, "$1,$2"));

chatt 08.04.2016 16:45

Цитата:

Сообщение от рони (Сообщение 413576)
Dilettante_Pro,
alert("ab;01;41:cd;22;a0;0".replace(/(\d);(\d)/g, "$1,$2"));

Спасибо, просто и надежно. В отличие от первого варианта, заменило все, а не первые три ; между цифрами.

Dilettante_Pro 08.04.2016 16:45

рони,
Это я про запас

Dilettante_Pro 08.04.2016 16:53

chatt,
Цитата:

Сообщение от chatt
В отличие от первого варианта, заменило все, а не первые три ; между цифрами

Да, что-то функция местами пробуксовывает...

chatt 08.04.2016 16:55

Засек, что оба кода не работают в случае трех цифр подряд 1;2;4 дают
1,2;4
Приходится дважды выполнять функцию.

рони 08.04.2016 17:07

chatt,
alert("1;2;4ab;01;41:cd;22;a0;0".replace(/(\d);(?=\d)/g, "$1,"));


Часовой пояс GMT +3, время: 18:25.