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()
相关推荐
❆VE❆10 小时前
【css】打造倾斜异形按钮:CSS radial-gradient 与抗锯齿实战解析
前端·javascript·css
followYouself10 小时前
ViewPager+Fragment
android·前端
37方寸10 小时前
前端基础知识(HTML、CSS)
前端·css·html
u13013010 小时前
深入解析二维码技术与前端生成方案
前端·二维码
wtsolutions10 小时前
MCP Service Integration - Excel to JSON for AI and Automation
人工智能·json·excel
pas13610 小时前
33-mini-vue 更新element的children-双端对比diff算法
javascript·vue.js·算法
小范馆10 小时前
STM32F03C8T6通过AT指令获取天气API-下篇
前端·stm32·esp8266-01s
cjp56010 小时前
019.C#管道服务,两软件间用json数据交互
开发语言·c#·json
组合缺一10 小时前
FastJson2 与 SnackJson4 有什么区别?
java·json·fastjson·snackjson
靓仔建10 小时前
用tdesign-vue-next的t-tree-select做个下拉单选框
javascript·vue.js·tdesign