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()
相关推荐
困困的果果头4 分钟前
【vue + element】el-table支持多层级合并列
前端·javascript·vue.js·elementui
GISer_Jing5 分钟前
React前端与React Native移动端开发须知差异
前端·react native·react.js
EndingCoder7 分钟前
React Native 与后端协同开发指南
javascript·react native·react.js
G等你下课10 分钟前
被低估的 CSS 核心!盒子模型如何撑起万亿级网页?
前端·css
只喜欢赚钱的棉花没有糖11 分钟前
从loader和plugin开始了解webpack
前端·webpack
前端日常开发12 分钟前
0 费用使用免费服务器部署 NestJS 项目
前端·后端
爱吃肉的小鹿12 分钟前
JavaScript 中 return和break 的区别
前端
Hilaku13 分钟前
😵‍💫 产品:你能不能让按钮 hover 有个动效?我直接做了个 UI 框架
前端·javascript·css
Nano14 分钟前
Vue 3.5 v-model 原理、自定义实现及与 Vue 2 的对比
前端·vue.js