我有一个由逗号分隔的数字列表组成的字符串。如何使用Regex在每个逗号后添加空格?
答案 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.replace
与regexp一起使用。
> 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