javascript - 自己写的json字符串解析函数,有一个正则求教大神???
PHP中文网
PHP中文网 2017-04-11 12:26:34
[JavaScript讨论组]

若是图片看不清楚,下面是图片内容:

    解析前: name:chenxuelong,sex:male,height:[10,{name:sex,male:nihao},30,40,50,80],color:{type:color,sex:male,test:[1,2,3]} 
    
    解析后:["name:chenxuelong", "sex:male", "height:[10,{name:sex,male:nihao},30,40,50,80],color:{type:color,sex:male,test:[1,2,3]"]
    
  我的正则是这么写的:var reg = /\w+:\w+|\w+:\[.*\]|\w+:\{.*\}/g;
  使用str.match(reg) 获取后的结果如上;

  最后一个匹配出错了,总之,最终结果应该是这样的:
  ["name:chenxuelong", "sex:male", "height:[10,{name:sex,male:nihao},30,40,50,80]", "color:{type:color,sex:male,test:[1,2,3]"] 
  
  而不是上面显示的结果:["name:chenxuelong", "sex:male", "height:[10,{name:sex,male:nihao},30,40,50,80],color:{type:color,sex:male,test:[1,2,3]"]
  
  求教,js正则该怎么写???
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
PHPz

你那个解析后的不是合法的JSON字符串。转成合法的JSON字符串如下:

var str = 'name:chenxuelong,sex:male,height:[10,{name:sex,male:nihao},30,40,50,80],color:{type:color,sex:male,test:[1,2,3]}';
var jsonString = str.replace(/([a-zA-Z]+)/g,'"$1"');
console.log(jsonString);
// => "name":"chenxuelong","sex":"male","height":[10,{"name":"sex","male":"nihao"},30,40,50,80],"color":{"type":"color","sex":"male","test":[1,2,3]}
大家讲道理

解析之后也不是json,json格式不是这样的,只需要把所有含字母的值加引号,再JSON.parse即可
如果非要按照你的这种写法来,最后顶多就是一个一维数组。而且这正则还真难写,求高手

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号