背景
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()