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

如何将文本文件/字符串转换为JavaScript键值对对象

实现方案

核心处理逻辑分4步:

  • 先对原始字符串做拆分,按逗号切割成独立片段
  • 过滤掉开头不带等号的操作标识片段(即NGGCVS3.scratch1.create段)
  • 对剩余带等号的片段,按等号切割出键名和值,去掉值两端包裹的双引号
  • 按需提取目标字段(pin、scnum、senum)组装成最终对象,不需要的字段直接丢弃即可

完整可运行代码

// 原始输入字符串
const textFile = "NGGCVS3.scratch1.create,end_date=\"07/03/2025\",pin=\"31742\",scnum=\"2736289877\",senum=\"250322602004999\",SCRPREF=\"500\",SUSP_F=\"0\"";

function parseTargetStr(str) {
  const tempKV = {};
  // 按逗号拆分所有片段
  const segList = str.split(',');
  for (const seg of segList) {
    // 跳过无等号的非键值对片段
    if (seg.indexOf('=') === -1) continue;
    // 拆分键、值,处理值两端的引号
    const splitIdx = seg.indexOf('=');
    const key = seg.slice(0, splitIdx).trim();
    const value = seg.slice(splitIdx + 1).replaceAll('"', '');
    tempKV[key] = value;
  }
  // 返回需要的字段,格式和要求完全匹配
  return {
    pin: tempKV.pin,
    scnum: tempKV.scnum,
    senum: tempKV.senum
  }
}

// 生成目标对象
const object = parseTargetStr(textFile);

运行后object的输出和预期格式完全一致:

{
  pin: '31742',
  scnum: '2736289877',
  senum: '250322602004999'
}

适配场景说明

  • 如果是读取本地文本文件的场景,先通过对应环境的文件读取方法拿到文本内容(Node.js用fs模块,浏览器端用FileReader),再传入parseTargetStr方法处理即可
  • 如果后续需要保留所有解析出来的键值对,直接返回tempKV对象即可,不需要做字段筛选
  • 如果后续值内容中出现逗号、等号类特殊字符,把拆分逻辑替换为正则匹配/(\w+)="([^"]+)"/g做全局匹配即可,当前实现针对给出的固定格式场景性能更高、逻辑更简单

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:27:13