该问题在使用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 }
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 }
宠辱不惊,看庭前花开花落;去留无意,望天上云卷云舒