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

获取游戏金币Cookie时parseInt返回NaN问题求助

解决parseInt转换Cookie「gold」返回NaN的问题

嘿,我来帮你搞定这个问题!从你描述的情况和给出的代码片段来看,核心问题大概率出在getCookie函数不完整,导致它没有正确返回Cookie的数值内容,进而让parseInt转出来NaN。下面一步步给你排查和解决:

1. 补全你的getCookie函数

你提供的代码里return c.substring...是不完整的,正确的写法应该截取掉Cookie名(比如gold=)之后的部分,也就是实际的数值内容。完整的函数应该是这样:

function getCookie(cname) {
  var name = cname + "=";
  var decodedCookie = decodeURIComponent(document.cookie);
  var ca = decodedCookie.split(';');
  for(var i = 0; i < ca.length; i++) {
    var c = ca[i];
    // 去掉Cookie项开头的空格
    while(c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    // 找到匹配的Cookie项后,返回纯值部分
    if(c.indexOf(name) == 0) {
      return c.substring(name.length);
    }
  }
  // 如果没找到对应Cookie,返回空字符串
  return "";
}

2. 验证Cookie获取结果

先调用函数看看返回的内容是不是预期的"7238":

console.log(getCookie('gold'));

如果输出是"7238",那说明获取没问题;如果输出是"gold=7238"或者空字符串,那就是函数没写对,或者你调用时传的Cookie名大小写不对(比如传了'Gold'而不是'gold')。

3. 安全地转换为数字

就算获取到了正确的字符串,转换时也建议加上十进制基数(10),同时可以用trim()去掉可能的隐藏空格,避免意外:

const goldValueStr = getCookie('gold').trim();
const goldValue = parseInt(goldValueStr, 10);
console.log(goldValue); // 这时候应该输出7238,而不是NaN

额外排查点

如果还是有问题,检查一下浏览器的Cookie存储:

  • 确认「gold」Cookie确实存在,值是纯数字7238,没有额外的符号或空格
  • 确认没有其他同名但大小写不同的Cookie干扰(比如Gold)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:33:58