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()
相关推荐
一袋米扛几楼98几秒前
【前端开发】基于TypeScript打破 React 黑盒——组件的“工厂心智模型”与源码解剖
javascript·react.js·typescript
明月_清风18 分钟前
Nginx 生产环境配置完全指南:从安全加固到性能调优
前端·nginx
用户6000718191020 分钟前
【翻译】用 Reanimated CSS 动画为 TextInput 添加发光效果
前端
李剑一25 分钟前
前后端命名冲突?驼峰与下划线的统一方案(附可直接复用代码)
前端
用户114818678948429 分钟前
Git Stash 丢失后的完整找回指南
前端·git
代码不加糖30 分钟前
2026 React 面试“通关秘籍”:高频 12 问 + 深度解析(含Hooks源码思想)
前端·react.js·面试
我滴老baby30 分钟前
ReAct推理模式详解让智能体学会边思考边行动
前端·react.js·前端框架
菜鸟小码1 小时前
MapReduce 核心阶段深度解析:Map 阶段与 Reduce 阶段的作用及执行流程
前端·javascript·mapreduce
步步为营DotNet1 小时前
深入剖析.NET 11 中 Semantic Kernel 于智能后端集成的创新实践
前端·.net·easyui
wtsolutions1 小时前
JSON-to-Excel 本地化应用发布:安全离线转换,数据零泄露
安全·json·excel