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()
相关推荐
FrontAI9 分钟前
深入浅出 LangChain —— 第三章:模型抽象层
前端·人工智能·typescript·langchain·ai agent
givemeacar14 分钟前
spring-boot-starter和spring-boot-starter-web的关联
前端
leoZ23140 分钟前
金仓老旧项目改造-10
开发语言·前端·人工智能·python·金仓
接着奏乐接着舞1 小时前
react redux Toolkit 分组更推荐
前端·javascript·react.js
笨笨狗吞噬者1 小时前
uni-app 运行时揭秘:styleIsolation 的转化
前端·微信小程序·uni-app
是席木木啊1 小时前
告别console.log!Vue3项目日志框架选型指南
前端·vue3·日志框架
凰轮1 小时前
TypeScript 知识点总结
前端·javascript·typescript
Hello--_--World2 小时前
JS:闭包、函数柯里化、工厂函数、偏函数、立即执行函数 相关知识点与面试题
开发语言·javascript·ecmascript
英俊潇洒美少年2 小时前
告别大请求卡顿!原生 CompressionStream 实现 axios 请求体自动 Gzip 压缩(前后端全适配)
前端
|晴 天|2 小时前
Element Plus 组件库实战技巧与踩坑记录
前端·javascript·vue.js·typescript