正则表达式在Javascript中的每个逗号后添加一个空格

时间:2011-10-01 15:16:41

标签: javascript regex

我有一个由逗号分隔的数字列表组成的字符串。如何使用Regex在每个逗号后添加空格?

8 个答案:

答案 0 :(得分:25)

最简单的解决方案

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

另一种解决方案

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

答案 1 :(得分:10)

我发现重要的是要注意,如果逗号后面跟一个空格你不想添加空格:

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

此正则表达式检查以下字符,仅在没有空格字符时才替换。

答案 2 :(得分:6)

String.replaceregexp一起使用。

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

答案 3 :(得分:5)

另一个简单的通用解决方案,用于逗号后跟n个空格:

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

始终用逗号和一个空格替换逗号和n空格。

答案 4 :(得分:4)

这些都是好的方式,如果输入是由用户做出的,你得到的列表如“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!

答案 5 :(得分:3)

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

答案 6 :(得分:3)

不要使用正则表达式,使用拆分和连接。

它更简单,更快捷:)

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

答案 7 :(得分:2)

当我来到这里并且没有找到一个好的通用解决方案时,我就是这样做的:

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

这将替换逗号,后跟除空格,换行符,制表符以外的任何内容,后面跟一个空格。

所以正则表达式是:

,([^\s])

并替换为

, $1