如果没有两位以上的数字
let answer = "{" + res.data.replace(/([a-zA-Z0-9])/g, "\"$1\"") + "}"
let result = JSON.parse(answer)
console.log("打印",result)
如果存在两位以上的数字 正则表达式会把10分割开:"1","0",需要用一下形式处理
let str = "0:a,1:a,2:d,3:a,4:a,5:a,6:a,7:a,8:a,9:a,10:[a,d,e]"
const regex = /(\d+):(\[.*?\]|[^,]+)/g;
let result = str.match(regex).reduce((prev, item) => {
const [key, value] = item.split(':')
return {
...prev,
...{
[key]: value.startsWith("[") ? value.replaceAll(']', '')
.replaceAll('[', '').split(',') : value
}
}
}, {})
console.log("打印", result);