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()
相关推荐
骐骥112 小时前
鸿蒙开发使用DevTools工具调试ArkWeb组件中的前端页面
前端·harmonyos·调试·arkweb·纯鸿蒙
WHOVENLY19 小时前
【javaScript】- 笔试题合集(长期更新,建议收藏,目前已更新至31题)
开发语言·前端·javascript
指尖跳动的光19 小时前
将多次提交合并成一次提交
前端·javascript
程序员码歌19 小时前
短思考第263天,每天复盘10分钟,胜过盲目努力一整年
android·前端·后端
oden19 小时前
1 小时速通!手把手教你从零搭建 Astro 博客并上线
前端
若梦plus19 小时前
JS之类型化数组
前端·javascript
若梦plus19 小时前
Canvas 深入解析:从基础到实战
前端·javascript
若梦plus19 小时前
Canvas渲染原理与浏览器图形管线
前端·javascript
C_心欲无痕20 小时前
vue3 - 依赖注入(provide/inject)组件跨层级通信的优雅方案
前端·javascript·vue.js