共计 546 个字符,预计需要花费 2 分钟才能阅读完成。
理论遇到的问题
let result = {
"acookieId": null,
"adjustFee": "0.00",
"alipayId": null,
"alipayNo": 2020120422001188551422599081,
"alipayPoint": "0",
"alipayUrl": "2020120422001188551422599081-url",
"alipayWarnMsg": null,
"allowAppkeys": null
}
下面是我工作中遇到的一段返回的 json 数据,因为 alipayNo 字段值超过 18 位数字,导致对这段数据进行 JSON.stringify() 时会把后续的数字在页面上显示会变成 0。
我是按上面办法解决的
let matchArray = result.match(/"[a-zA-Z]*":d{18}d+/g)
// 因为这个数字在 alipayUrl 也会呈现并且是在字符串中,所以须要先将整个字段匹配进去
let matchArrayItem = matchArray.replace(/d{18}d+/g, '"$&"')
// 再对下面找到的字段值加上双引号,转换为字符串
result = result.replace(matchArray, matchArrayItem)
// 替换掉原先的值就好
正文完
发表至: javascript
2020-12-07