字符串转数组

今天遇到这样一个问题:

var str="[{productId=1181461914442657793, visitNum=78, productName=麻辣王子}, {productId=1182163138800361474, visitNum=15, productName=荔枝}, {productId=1181472367218651138, visitNum=5, productName=劲仔鱼仔}, {productId=1181477629535035393, visitNum=0, productName=猪肉铺}, {productId=1181476559228346370, visitNum=0, productName=芒果}]";

要把str转换成一个数组,正常的可以通过JSON.parse(str)进行转换,
这需要str为:

str='[{"productId":"1181461914442657793","visitNum":"78","productName":"麻辣王子"},{"productId":"1182163138800361474","visitNum":"15","productName":"荔枝"},{"productId":"1181472367218651138","visitNum":"5","productName":"劲仔鱼仔"},{"productId":"1181477629535035393","visitNum":"0","productName":"猪肉铺"},{"productId":"1181476559228346370","visitNum":"0","productName":"芒果"}]'

所以:首先要把=变成:,其次,就是个键和值加上引号
代码如下:

var str="[{productId=1181461914442657793, visitNum=78, productName=麻辣王子}, {productId=1182163138800361474, visitNum=15, productName=荔枝}, {productId=1181472367218651138, visitNum=5, productName=劲仔鱼仔}, {productId=1181477629535035393, visitNum=0, productName=猪肉铺}, {productId=1181476559228346370, visitNum=0, productName=芒果}]";
str = str.replace(/\=/g,":");  //把所有的=转换为:
 var reg = /([^\:\{\}\[\]\,]+)\:([^\:\,\{\}\[\]]*)/g;
 str = str.replace (reg, "\"$1\":\"$2\""); //给json加上引号
 str=str.replace(/\s+/g,""); //去掉所有的空格
 var arr=JSON.parse(str)
 console.log(arr)

打印结果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值