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()
相关推荐
凌览9 分钟前
2026年1月编程语言排行榜|C#拿下年度语言,Python稳居第一
前端·后端·程序员
user861581857815413 分钟前
Element UI 表格 show-overflow-tooltip 长文本导致闪烁的根本原因与解法
前端
不会写前端的小丁17 分钟前
前端首屏渲染性能优化小技巧
前端
还不秃顶的计科生17 分钟前
defaultdict讲解
开发语言·javascript·ecmascript
晴虹18 分钟前
lecen:一个更好的开源可视化系统搭建项目--组件和功能按钮的权限控制--全低代码|所见即所得|利用可视化设计器构建你的应用系统-做一
前端·后端·低代码
爱分享的鱼鱼20 分钟前
Pinia 深度解析:现代Vue应用状态管理最佳实践
前端·后端
花归去22 分钟前
echarts 柱状图包含右侧进度
开发语言·前端·javascript
沐浴露z33 分钟前
学习通“只能录入不能粘贴” 解决方案与原理分析
javascript
多看书少吃饭37 分钟前
Vite开发环境按需编译是怎么实现的
前端
ybb_ymm1 小时前
@Async修饰不生效
java·前端·数据库