js处理雪花算法ID在前端丢失精度溢出的问题

建议直接在请求返回的钩子中去对json字符串进行统一处理

这里处理了多种情况。比如数字字符串等

这里统一将数字转换为字符串使用

具体代码如下:

var json_string = `{"price":3.099999998949999,"location":"31.1456,121.45798","id":15423456456465,"id":1,"id2":1.1,"id3":"123456789","id4":-100,"ids":[1,2222,3333],"ids2":[6666,888,999],"ids3":["123.457",13545,25.5]}`;

//第一种情况处理正则
const reg1=/(\-*\d+(?:\.\d+)?),/gi
//第二种情况处理正则
const reg2=/(\-*\d+(?:\.\d+)?)\}/gi
//第三种情况处理正则
const reg3=/(\-*\d+(?:\.\d+)?)\]/gi
//修正错误的替换结果
const reg4=/""(\-*\d+(?:\.\d+)?)"/gi

// var dataArr=json_string.match(reg1); //测试输出匹配结果
// console.log(dataArr)
var json_string=json_string.replace(reg1,`"$1",`);
var json_string=json_string.replace(reg2,`"$1"}`);
var json_string=json_string.replace(reg3,`"$1"]`);
var json_string=json_string.replace(reg4,`"$1`);
console.log(json_string)
console.log(JSON.parse(json_string))

1.支持负数

2.支持小数

3.支持,结尾的数字处理

4.支持对象中的数字处理

5.支持数组中的数字处理

测试的字符串中包含了大部分情况,一般是足够用了。不会有太大问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值