У меня есть строка, состоящая из списка чисел, разделенных запятыми. Как я могу добавить пробел после каждой запятой, используя Regex?
Regex добавить пробел после каждой запятой в Javascript
Ответ 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