You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript将字符串中每隔一个逗号替换为空格?

问题分析

你写的正则/([0-9]+),\s([0-9]+),\s/g无效的原因有两个:

  1. [0-9]+只能匹配纯整数,但你的输入是带小数点的浮点数,正则无法匹配到目标内容;
  2. 你的输入里坐标对内部是x,y(无空格),而正则要求匹配x, y(逗号后带空格)的结构,完全找不到匹配项,所以替换后内容和输入一致。
解决方案

根据你的输入格式(x,y , x,y , ...),推测你想把坐标对之间的,(空格+逗号+空格)改成, (逗号+空格),去掉逗号前的多余空格。可以用以下两种方式实现:

方式1:直接匹配多余空格

最简单的写法,直接匹配逗号前的一个或多个空格,替换成空:

const inputStr = ' 35.15560188441565,31.738399966331848 , 35.2517322555094,31.705440981956848 , 35.28057136683753,31.742519839378723 , 35.28743782191565,31.798824771019348 , 35.27507820277503,31.842770083519348 , 35.20504036097815,31.872982485863098 , 35.16521492152503,31.841396792503723 , 35.14049568324378,31.807064517113098 , 35.15560188441565,31.738399966331848 ';
const outputStr = inputStr.replace(/\s+,/g, ', ');

方式2:精准匹配坐标对(更严谨)

如果需要确保只修改坐标对后面的分隔符,可以用正则捕获浮点数,避免误匹配其他内容:

const outputStr = inputStr.replace(/(\d+(?:\.\d+)?)\s+,/g, '$1, ');

其中\d+(?:\.\d+)?可以匹配整数或带小数点的浮点数,(?:...)是不捕获分组,只用于匹配结构。

效果验证

修改后的输出会变成:
35.15560188441565,31.738399966331848, 35.2517322555094,31.705440981956848, 35.28057136683753,31.742519839378723, 35.28743782191565,31.798824771019348, 35.27507820277503,31.842770083519348, 35.20504036097815,31.872982485863098, 35.16521492152503,31.841396792503723, 35.14049568324378,31.807064517113098, 35.15560188441565,31.738399966331848

内容的提问来源于stack exchange,提问作者Boris K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 10:01:08