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()
相关推荐
哇哇哇哇几秒前
vue3 ref解析
前端
哇哇哇哇1 分钟前
vue3 reactive解析
前端
光影少年17 分钟前
Vue的响应式原理?Vue2和Vue3有什么区别?
前端·vue.js·掘金·金石计划
孟祥_成都25 分钟前
Cursor 要被淘汰了?开发者最应该关注的 10 个信号
前端·人工智能
cxxcode34 分钟前
Sentry browserTracingIntegration 实现原理深度解析
前端
孟沐37 分钟前
大白话理解 Java 序列化:对标前端 JSON.stringify/parse
前端
忘ci40 分钟前
electron、edge.js调用C#动态链接库的一些问题
前端
yannick_liu42 分钟前
推荐一个可以在vue2中格式化json数据的插件
前端
可视之道43 分钟前
Canvas 渲染引擎性能优化实战:从 15 FPS 到 55 FPS
前端
进击的尘埃1 小时前
拖拽搭建场景下的智能布局算法:栅格吸附、参考线与响应式出码
javascript