JSON.parse 解析NaN, Infinity, -Infinity失败

背景

JSON.parse() 方法解析字符串时, 如果字符串包含NaN, Infinity, -Infinity会报错。因为我们需要先将NaN, Infinity, -Infinity替换成字符类型,再做转换

解决方法

javascript 复制代码
function convert(str) {
	str = str.replace(/NaN/g, '"NaN"');
	str = str.replace(/-Infinity/g, '"Infinity"');
	str = str.replace(/Infinity/g, '"Infinity"');
	return str;
}

注意

  1. 对-Infinity的转换要在Infinity之后,不然负号-就不能被转换了
  2. 字符串模式只会被替换一次。要执行全局搜索和替换,请使用带有 g 标志的正则表达式或使用 replaceAll()
相关推荐
结网的兔子7 小时前
前端学习笔记(实战准备篇)——用vite构建一个项目【吐血整理】
前端·学习·elementui·npm·node.js·vue
kyriewen7 小时前
盒模型:CSS 世界的物理法则,margin 塌陷与 padding 的恩怨情仇
前端·css·html
lichenyang4537 小时前
React 性能优化组件设计模式与通信
前端·javascript·设计模式
小成C7 小时前
别再把 Claude Code 用乱了:CLAUDE.md、Rules、Skills、Hooks 到底怎么分工?
前端·人工智能·面试
带刺的坐椅7 小时前
snack4-jsonpath v4.0.36 发布(支持 IETF RFC 9535 标准)
java·json·jsonpath·snack4
巫山老妖8 小时前
OpenClaw 技术教程大全:从安装到多 Agent 协作,全在这里
java·前端
weixin_446260858 小时前
提升开发效率的神器!快速选择编码上下文 — React Grab
前端·react.js·前端框架
于眠牧北8 小时前
Jmeter发送POST请求并设置application/json格式
jmeter·json
前端付豪8 小时前
自动学习建议解决薄弱知识点
前端·python·openai
SuperEugene8 小时前
Vite 实战教程:alias/env/proxy 配置 + 打包优化避坑|Vue 工程化篇
前端·javascript·vue.js·状态模式·vite