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()
相关推荐
2501_944424122 小时前
Flutter for OpenHarmony游戏集合App实战之连连看路径连线
android·开发语言·前端·javascript·flutter·游戏·php
search79 小时前
前端设计:CRG 3--CDC error
前端
治金的blog9 小时前
vben-admin和vite,ant-design-vue的结合的联系
前端·vscode
利刃大大10 小时前
【Vue】Vue2 和 Vue3 的区别
前端·javascript·vue.js
Lhuu(重开版10 小时前
JS:正则表达式和作用域
开发语言·javascript·正则表达式
荔枝一杯酸牛奶11 小时前
HTML 表单与表格布局实战:两个经典作业案例详解
前端·html
Charlie_lll12 小时前
学习Three.js–纹理贴图(Texture)
前端·three.js
yuguo.im12 小时前
我开源了一个 GrapesJS 插件
前端·javascript·开源·grapesjs
安且惜12 小时前
带弹窗的页面--以表格形式展示
前端·javascript·vue.js
摘星编程13 小时前
用React Native开发OpenHarmony应用:NFC读取标签数据
javascript·react native·react.js