JavaScript中使用正则匹配多条,且获取每条中的分组数据

该问题在使用Ajax远程获取某网页数据时经常遇见

如果目标页面是XML,就好办了,实用XMLDOM可以很轻松完成任务。

不过我要面对的是一个很松散的HTML页面,无法XML

因此,本文的重点在于如果要获取的网页中有Table或List段落,需要将这些段落的信息按照列的方式保存到JS的数组中

直接贴代码:

 

 

 1 var str = "字符串字符串<table><tr><th>ID</th><th>姓名</th><th>电话</th></tr><tr><td>01</td><td>张三</td><td>1234567</td></tr><tr><td>02</td><td>李四</td><td>343434</td></tr><tr><td>03</td><td>王五</td><td>685654</td></tr></table>字符串字符串";   
 2  var regRecord = new RegExp('\\<tr>\\<td>([0-9]{2})\\<\\/td\\>\\<td>([^\\<]+)\\<\\/td\\>\\<td>([0-9]+)\\<\\/td\\>\\<\\/tr\\>','g');   
 3   
 4  var fieldIndex = { 'Id' : 1 , 'Name' : 2 , 'Phone' : 3 }   
 5   
 6  var g_records = [],record;   
 7  while ((record = regRecord.exec(str)) != null){   
 8     g_records.push({   
 9         'Id' : RegExp["$"+fieldIndex.Id]   
10         ,'Name' : RegExp["$"+fieldIndex.Name]   
11         ,'Phone' : RegExp["$"+fieldIndex.Phone]   
12     });   
13 }   
14 //此时 g_records 就保存了匹配的数据表格,打印出来看看:   
15 for(var i=0;i<g_records.length;i++){   
16     alert("ID:" + g_records[i].Id + ";Name:" + g_records[i].Name + ";Phone:" + g_records[i].Phone);   
17 }  

 

 


宠辱不惊,看庭前花开花落;去留无意,望天上云卷云舒
上一篇:记录一次用命令行排错的过程


下一篇:jdk8环境下,添加重复注解的美好体验