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

Chrome 84调用replaceAll报is not a function错误如何解决

报错原因

这个报错和时区获取逻辑无关,完全是浏览器兼容性问题:
String.prototype.replaceAll 是ES2021标准新增的字符串方法,Chrome浏览器从85版本才开始原生支持该API,你使用的Chrome 84版本的字符串原型链上不存在这个方法,调用时就会抛出replaceAll is not a function的错误。

修复方法

优先推荐无侵入的正则替换方案,兼容所有Chrome版本,不需要额外新增polyfill:

function GetHumanTimezone() {
  // 正则加g标记实现全局匹配,效果和replaceAll完全一致
  return Intl.DateTimeFormat().resolvedOptions().timeZone.replace(/_/g, '-');
}

如果你有多处代码使用了replaceAll、不想逐处修改,可以在业务代码入口处统一添加polyfill,注意先做特性判断避免覆盖高版本浏览器的原生实现:

if (!String.prototype.replaceAll) {
  String.prototype.replaceAll = function (matchStr, replaceStr) {
    return this.replace(new RegExp(matchStr, 'g'), replaceStr);
  };
}

添加后你原来的GetHumanTimezone函数不需要任何修改就可以正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 13:51:29