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()
相关推荐
小小前端_我自坚强5 分钟前
React 核心技术深度笔记
前端·javascript·react.js
Pkmer5 分钟前
古法编程: SPA的路由浅思考
前端
Cobyte8 分钟前
9.响应式系统演进:effectScope 的作用与实现原理(Vue3.2)
前端·javascript·vue.js
heimeiyingwang9 分钟前
【架构实战】微前端架构设计与落地
前端·架构
techdashen14 分钟前
Cloudflare HTML 解析器的十年演化史(二)
前端·html
ZC跨境爬虫19 分钟前
Apple官网复刻第二阶段day_1:(导航栏模块化重构+工业化可复用UI落地)
前端·javascript·css·ui·重构
天外飞雨道沧桑26 分钟前
Node.js在前端开发中扮演的角色
前端·node.js
梅梅绵绵冰29 分钟前
若依框架-智慧社区项目
前端·javascript·vue.js
IT_陈寒36 分钟前
Vite开发爽是爽,但这个动态导入坑差点让我崩溃
前端·人工智能·后端
Mr_pyx41 分钟前
CompletableFuture 使用全攻略:从异步编程到异常处理
linux·前端·python