本文主要是介绍JSON.parse 解析NaN, Infinity, -Infinity失败,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
背景
JSON.parse()
方法解析字符串时, 如果字符串包含NaN, Infinity, -Infinity会报错。因为我们需要先将NaN, Infinity, -Infinity替换成字符类型,再做转换
解决方法
function convert(str) {str = str.replace(/NaN/g, '"NaN"');str = str.replace(/-Infinity/g, '"Infinity"');str = str.replace(/Infinity/g, '"Infinity"');return str;
}
注意
- 对-Infinity的转换要在Infinity之后,不然负号
-
就不能被转换了 - 字符串模式只会被替换一次。要执行全局搜索和替换,请使用带有 g 标志的正则表达式或使用 replaceAll()
这篇关于JSON.parse 解析NaN, Infinity, -Infinity失败的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!