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

NodeJS中如何去除字符串引号?解决会话写入重复引号问题

解决Node.js中字符串重复引号问题

你遇到的问题是:用JSON.stringify(response.data.userid)得到的userid输出为"U386243148976",写入会话后变成了""U386243148976"",需要保留仅带一层引号的"U386243148976"。

问题根源

JSON.stringify的作用是把JavaScript值转成JSON格式的字符串。如果response.data.userid本身已经是字符串类型(比如U386243148976),用JSON.stringify处理后会给它加上双引号,变成"U386243148976"。当你把这个值写入会话时,会话存储通常会自动对数据进行JSON序列化,导致已有的引号被转义,最终出现双层引号。

解决方案

方案1:直接取值(推荐)

既然response.data.userid本身就是字符串,完全不需要用JSON.stringify处理,直接赋值即可:

axios(userdata)
  .then(function (response) {
    userid = response.data.userid; // 去掉JSON.stringify,直接获取原字符串
    console.log(userid); // 输出:U386243148976
    return cb(null, {
      userid: userid,
      role: "editor",
    });
  })
  .catch(function (error) {
    console.log(error);
  });

这样写入会话后,会话的序列化会自动给字符串加上一层引号,最终得到你期望的"U386243148976"。

方案2:手动去除首尾引号(适用于必须用JSON.stringify的场景)

如果因为某些原因必须用JSON.stringify,可以用正则表达式去掉字符串首尾的双引号:

userid = JSON.stringify(response.data.userid).replace(/^"|"$/g, '');
// 此时userid为纯字符串:U386243148976
// 若需要手动添加一层引号,可再执行:
// userid = `"${userid}"`;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 14:37:18