JavaScript中使用正則匹配多條,且獲取每條中的分組數(shù)據(jù)
更新時(shí)間:2010年11月30日 22:35:28 作者:
該問(wèn)題在使用Ajax遠(yuǎn)程獲取某網(wǎng)頁(yè)數(shù)據(jù)時(shí)經(jīng)常遇見(jiàn) 如果目標(biāo)頁(yè)面是XML,就好辦了,實(shí)用XMLDOM可以很輕松完成任務(wù)。
不過(guò)我要面對(duì)的是一個(gè)很松散的HTML頁(yè)面,無(wú)法XML
因此,本文的重點(diǎn)在于如果要獲取的網(wǎng)頁(yè)中有Table或List段落,需要將這些段落的信息按照列的方式保存到JS的數(shù)組中
直接貼代碼:
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>字符串字符串";
var regRecord = new RegExp('\\<tr>\\<td>([0-9]{2})\\<\\/td\\>\\<td>([^\\<]+)\\<\\/td\\>\\<td>([0-9]+)\\<\\/td\\>\\<\\/tr\\>','g');
var fieldIndex = { 'Id' : 1 , 'Name' : 2 , 'Phone' : 3 }
var g_records = [],record;
while ((record = regRecord.exec(str)) != null){
g_records.push({
'Id' : RegExp["$"+fieldIndex.Id]
,'Name' : RegExp["$"+fieldIndex.Name]
,'Phone' : RegExp["$"+fieldIndex.Phone]
});
}
//此時(shí) g_records 就保存了匹配的數(shù)據(jù)表格,打印出來(lái)看看:
for(var i=0;i<g_records.length;i++){
alert("ID:" + g_records[i].Id + ";Name:" + g_records[i].Name + ";Phone:" + g_records[i].Phone);
}
因此,本文的重點(diǎn)在于如果要獲取的網(wǎng)頁(yè)中有Table或List段落,需要將這些段落的信息按照列的方式保存到JS的數(shù)組中
直接貼代碼:
復(fù)制代碼 代碼如下:
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>字符串字符串";
var regRecord = new RegExp('\\<tr>\\<td>([0-9]{2})\\<\\/td\\>\\<td>([^\\<]+)\\<\\/td\\>\\<td>([0-9]+)\\<\\/td\\>\\<\\/tr\\>','g');
var fieldIndex = { 'Id' : 1 , 'Name' : 2 , 'Phone' : 3 }
var g_records = [],record;
while ((record = regRecord.exec(str)) != null){
g_records.push({
'Id' : RegExp["$"+fieldIndex.Id]
,'Name' : RegExp["$"+fieldIndex.Name]
,'Phone' : RegExp["$"+fieldIndex.Phone]
});
}
//此時(shí) g_records 就保存了匹配的數(shù)據(jù)表格,打印出來(lái)看看:
for(var i=0;i<g_records.length;i++){
alert("ID:" + g_records[i].Id + ";Name:" + g_records[i].Name + ";Phone:" + g_records[i].Phone);
}
您可能感興趣的文章:
- JavaScript正則替換HTML標(biāo)簽功能示例
- php正則去除網(wǎng)頁(yè)中所有的html,js,css,注釋的實(shí)現(xiàn)方法
- Java/Js下使用正則表達(dá)式匹配嵌套Html標(biāo)簽
- javascript下一個(gè)還原h(huán)tml代碼的正則
- JS正則表達(dá)式獲取字符串中特定字符的方法
- javascript 獲取url參數(shù)的正則表達(dá)式(用來(lái)獲取某個(gè)參數(shù)值)
- 在JavaScript中獲取請(qǐng)求的URL參數(shù)[正則]
- Javascript 獲取鏈接(url)參數(shù)的方法[正則與截取字符串]
- node.js正則表達(dá)式獲取網(wǎng)頁(yè)中所有鏈接的代碼實(shí)例
- JS獲取網(wǎng)址中指定值的正則函數(shù)
- javascript 獲取鏈接文件地址中第一個(gè)斜線內(nèi)的正則表達(dá)式
- javascript使用正則獲取url上的某個(gè)參數(shù)
- JS正則獲取HTML元素的方法
相關(guān)文章
ES6學(xué)習(xí)筆記之正則表達(dá)式和字符串正則方法分析
這篇文章主要介紹了ES6學(xué)習(xí)筆記之正則表達(dá)式和字符串正則方法,結(jié)合實(shí)例形式對(duì)比分析了ES5與ES6正則操作的常用函數(shù)功能與用法區(qū)別,需要的朋友可以參考下2017-04-04layui?框架的upload上傳文件的data參數(shù)傳到后端的方法
這篇文章主要介紹了layui框架的upload上傳文件的data參數(shù)傳到后端的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11JavaScript實(shí)現(xiàn)橫線提示輸入驗(yàn)證碼隨輸入驗(yàn)證碼輸入消失的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)橫線提示輸入驗(yàn)證碼隨輸入驗(yàn)證碼輸入消失的方法,非常實(shí)用,在微信開發(fā)中經(jīng)常會(huì)用到,需要的朋友可以參考下2016-09-09詳解JS截取字符串的三個(gè)方法substring,substr,slice
js中有三個(gè)截取字符的方法,分別是substring()、substr()、slice(),平時(shí)我們可能都用到過(guò),但總是會(huì)對(duì)這些方法有點(diǎn)混淆。本文將詳細(xì)介紹一下這三者的區(qū)別,需要的可以參考一下2022-03-03Ajax 文件上傳進(jìn)度監(jiān)聽(tīng)之upload.onprogress案例詳解
這篇文章主要介紹了Ajax 文件上傳進(jìn)度監(jiān)聽(tīng)之upload.onprogress案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09JS獲取DropDownList的value值與text值的示例代碼
本篇文章主要是對(duì)JS獲取DropDownList的value值與text值的示例代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01JavaScript開發(fā)的七個(gè)實(shí)用小技巧(很有用)
日常開發(fā)中,我們經(jīng)常需要編寫大量的js代碼,下面這篇文章主要給大家介紹了關(guān)于JavaScript開發(fā)的七個(gè)實(shí)用小技巧,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04