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

如何移除JSON指定字段值的多余空格?正则表达式优化求助

解决思路:移除JSON指定字段值中的空格

方法一:解析JSON为对象处理(推荐)

这种方法逻辑清晰,避免了正则处理JSON的潜在风险(比如值含转义字符的情况),是更稳妥的方案:

  • 将JSON字符串解析为对象
  • 遍历目标字段(AUT、COR、RES、SUP),移除字段值内的所有空格
  • 再将处理后的对象转回JSON字符串

示例代码(JavaScript):

const jsonStr = '{"main":{"sem":"segon semestre","year":"2021","AUT":"admin  ","RES":"manel , admin ,lectura ","SUP":"kiloton  ","COR":"   ","fitx":"continguts"}}';
const data = JSON.parse(jsonStr);
const targetFields = ['AUT', 'COR', 'RES', 'SUP'];

targetFields.forEach(field => {
  if (data.main[field]) {
    // 移除值中所有空格
    data.main[field] = data.main[field].replace(/\s/g, '');
  }
});

const cleanedJson = JSON.stringify(data);
console.log(cleanedJson);

处理后RES字段值会变为"manel,admin,lectura",其他指定字段的空格也会被完全移除。

方法二:修正正则表达式处理

你原正则的问题是仅捕获了值的部分内容,无法覆盖RES字段里的多段内容。可以通过捕获整个字段值再移除空格的方式解决:

示例代码(JavaScript):

const jsonStr = '{"main":{"sem":"segon semestre","year":"2021","AUT":"admin  ","RES":"manel , admin ,lectura ","SUP":"kiloton  ","COR":"   ","fitx":"continguts"}}';
const cleanedJson = jsonStr.replace(/"(AUT|COR|RES|SUP)":"([^"]*)"/g, (match, key, value) => {
  const cleanedValue = value.replace(/\s/g, '');
  return `"${key}":"${cleanedValue}"`;
});
console.log(cleanedJson);

正则说明:

  • "AUT|COR|RES|SUP":匹配指定的字段键
  • "([^"]*)":捕获字段的完整值(直到下一个双引号)
  • 替换时对捕获到的value执行空格移除操作,再拼接回键值对格式

注意

正则处理JSON仅适用于结构简单、值中无转义双引号的场景。如果JSON存在复杂嵌套或特殊字符,优先使用解析对象的方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:16:21