javascript - 如何把一段字符串中的有规律信息转为对象数组?
黄舟
黄舟 2017-04-11 13:05:49
[JavaScript讨论组]

比如我有一个变量content,
里面是字符串:

我想吧每个p标签(段落)里的href值,src值提取出来变成一个对象,如果有多个P标签,就把提取出的内容变成个对象数组,比如变成这样:

[{
href:"http://www.baidu.com",
src:"/wzomifiles/ftpfile/pic/2016/09/30/84e228e30f8d404ea7972eee988567e4.JPEG"
},{
href:"http://www.tengxun.com",
src:"/wzomifiles/ftpfile/pic/2016/09/30/84e228e30f8d404ea7972eee988567e1.JPEG"
}]

我该怎么写方法呢?新手求教,还没学习正则,规则看的有点晕,实在写不出来,能否给出以上需求的实例代码,非常感谢!

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(5)
天蓬老师
function contentParse(str) {
  var sr = /<\/p><p>/;
  var arr = str.split(sr);
  var r = [];
  for (var i = 0; i < arr.length; i++) {
    r.push({
      href: arr[i].match(/href="(.+?)"/)[1],
      src: arr[i].match(/src="(.+?)"/)[1]
    });
  }
  return r;
}
怪我咯

RegExpObject.exec(string)

天蓬老师

楼上的办法挺妙,顶一个,一下子还真没想到。我第一反应是用split("<p>")先分成数组,然后慢慢提取

大家讲道理

使用正则是最好的办法,正则匹配中定义好对应的Group名字,匹配完后直接拿到这个组的数据,也就是要求的数据。

正则:

[href="|src="][\s\S\d]*"
PHPz
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <p>
        <a href="http://www.baidu.com" target="_self">
            <img src="/wzomifiles/ftpfile/pic/2016/09/30/84e228e30f8d404ea7972eee988567e4.JPEG" title="84e228e30f8d404ea7972eee988567e4.JPEG"/>    
        </a>
    </p>
    <p>
        <a href="http://www.tengxun.com" target="_self">
            <img src="/wzomifiles/ftpfile/pic/2016/09/30/a5acfc450c334584aee43e720c8274c1.JPEG" title="a5acfc450c334584aee43e720c8274c1.JPEG"/>    
        </a>
    </p>
</body>
<script>
    var arr=new Array();
    var p=document.getElementsByTagName('p');
    for(var i=0;i<p.length;i++){
        arr[i]={};
        var a=p[i].getElementsByTagName('a');
        arr[i]['href']=a[0].href;
        for(var j=0;j<a.length;j++){
            var img=a[j].getElementsByTagName('img')
            arr[i]['src']=img[0].src;
        }
    }
    console.log(arr);
</script>
</html>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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