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()
相关推荐
星空椰2 分钟前
JavaScript 基础入门:从零开始掌握变量与数据类型
开发语言·前端·javascript·ecmascript
千寻简7 分钟前
一个让 Claude Code 顺手很多的状态栏插件:claude-hud
前端·后端
HelloReader16 分钟前
Qt Quick Controls 全览控件、弹窗、导航与样式定制(十一)
前端
意法半导体STM3220 分钟前
【官方原创】STM32 USBx Host HID standardalone移植示例 LAT1449
开发语言·前端·stm32·单片机·嵌入式硬件
竹林81821 分钟前
用wagmi v2构建DeFi前端:从连接钱包到读取合约数据的完整实战与避坑指南
前端·javascript
over69721 分钟前
面试官视角:TypeScript Pick 工具类型深度解析与手写实现
前端·面试
木斯佳23 分钟前
前端八股文面经大全:字节AIDP前端一面(2026-04-13)·面经深度解析
前端·音视频·webrtc·断点续传
Kinghiee26 分钟前
从零打造生产级前端错误监控 SDK:架构设计与 Vue3 实践
前端·javascript·vue.js·去重·错误捕获·上报·离线持久化
小凡同志30 分钟前
OpenSpec 手把手实战:从零跑通一个完整功能
前端·ai编程·claude
吴声子夜歌34 分钟前
Vue3——元素样式绑定
前端·javascript·vue.js·es6