Regex добавить пробел после каждой запятой в Javascript

У меня есть строка, состоящая из списка чисел, разделенных запятыми. Как я могу добавить пробел после каждой запятой, используя Regex?

Ответ 1

Простейшее решение

"1,2,3,4".replace(/,/g, ', ')
//-> '1, 2, 3, 4'

Другое решение

"1,2,3,4".split(',').join(', ')
//-> '1, 2, 3, 4'

Ответ 2

Я считаю важным отметить, что если запятая уже сопровождается пробелом, вы не хотите добавлять пробел:

"1,2, 3,4,5".replace(/,(?=[^\s])/g, ", ");
> "1, 2, 3, 4, 5"

Это регулярное выражение проверяет следующий символ и заменяет его, если нет символа пробела.

Ответ 3

Используйте String.replace с regexp.

> var input = '1,2,3,4,5',
     output = input.replace(/(\d+,)/g, '$1 ');
> output
  "1, 2, 3, 4, 5"

Ответ 4

Еще одно простое общее решение для запятой, за которым следуют n пробелов:

"1,2, 3,   4,5".replace(/,[s]*/g, ", ");
> "1, 2, 3, 4, 5"

Всегда заменяйте запятую и n пробелов запятой и одним пробелом.

Ответ 5

var numsStr = "1,2,3,4,5,6";
var regExpWay = numStr.replace(/,/g,", ");
var splitWay = numStr.split(",").join(", ");

Ответ 6

Не используйте для этого регулярное выражение, используйте split и join.

Это проще и быстрее:)

'1,2,3,4,5,6'.split(',').join(', '); // '1, 2, 3, 4, 5, 6'

Ответ 7

Все это хорошие способы , но в случаях, когда пользователь вводит вход, и вы получаете список типа "1,2, 3,4, 5,6,7"

.. В этом случае давайте сделать это идиотским доказательством! Так что учет уже отформатированных частей строки, решение:

"1,2, 3,4, 5,6,7".replace(/, /g, ",").replace(/,/g, ", ");

//result: "1, 2, 3, 4, 5, 6, 7" //Bingo!

Ответ 8

Поскольку я пришел сюда и не нашел хорошего общего решения, вот как я это сделал:

"1,2, 3,4,5".replace(/,([^\s])/g, ", $1");

Это заменяет запятую, за которой следует пробел, строка, табуляция... запятой, за которой следует пробел.

Итак, регулярное выражение:

,([^\s])

и заменить на

, $1