我有一个由逗号分隔的数字列表组成的字符串.如何使用Regex在每个逗号后添加空格?
kzh*_*kzh 26
"1,2,3,4".replace(/,/g, ', ')
//-> '1, 2, 3, 4'
Run Code Online (Sandbox Code Playgroud)
"1,2,3,4".split(',').join(', ')
//-> '1, 2, 3, 4'
Run Code Online (Sandbox Code Playgroud)
eli*_*ocs 12
我发现重要的是要注意,如果逗号后面跟着一个空格,则不想添加空格:
"1,2, 3,4,5".replace(/,(?=[^\s])/g, ", ");
> "1, 2, 3, 4, 5"
Run Code Online (Sandbox Code Playgroud)
此正则表达式检查以下字符,只有在没有空格字符时才替换.
> var input = '1,2,3,4,5',
output = input.replace(/(\d+,)/g, '$1 ');
> output
"1, 2, 3, 4, 5"
Run Code Online (Sandbox Code Playgroud)
小智 6
这些都是很好的方法,但如果用户输入并且您得到像“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!
Run Code Online (Sandbox Code Playgroud)
小智 6
逗号的另一个简单通用解决方案,后跟n个空格:
"1,2, 3, 4,5".replace(/,[s]*/g, ", ");
> "1, 2, 3, 4, 5"
Run Code Online (Sandbox Code Playgroud)
始终用逗号和一个空格替换逗号和n空格.