<script type="text/javascript">
window.onload=function(){
var aaa=document.getElementById("aaa").innerHTML;
//aaa 是得到的数据源,你那里可以是服务器后台的返回
var bbb=document.getElementById("bbb");
bbb.innerHTML=aaa;
table = bbb.getElementsByTagName("table")[0];
var info="";
for (var i = 0; i<table.rows.length;i++){
var name;
var sex;
var job = "0";
var vip = "0";
for (var j = 0; j < table.rows[i].cells.length; j++){
vv = table.rows[i].cells[j];
type = vv.className;
if(type == 'name'){
name = vv.innerHTML;
}else if(type == 'xingbie'){
sex = vv.innerHTML;
竖做 }else if(type == 'dengji'){
vip = vv.innerHTML;
}else if(type == 'zhiye'){
job = vv.innerHTML;
}
}
info += name+'-'+sex+'-'+vip+'-'+job+'</br>';
}
document.getElementById("ccc").innerHTML = info;
}
</script>
<div id="aaa" style="display:none;">
<table>
<tr>
<td class=name>李四</td>
<td class=xingbie>男</td>
<td class=dengji>VIP</td>
<td class=zhiye>教师</td>
</tr>
<tr>
<td class=name>张三</td>
<余磨衡td class=xingbie>男</td>
<td class=dengji>VIP</td>
</tr>
<tr>
<td class=name>王二</td>
<td class=xingbie>女</td>
</tr>
</table>
</div>
<div id="bbb" style="display:none;"></div>
<div id="ccc" ></div>
因为要处理的格式为一个标准的html table,用正则处理起来既麻烦又效率不高,可以尝试用其他方法游册,比如像这样,把得到的结果放到一个隐藏的div中,转换为html数据,在通过html的相关方法来处理数据,较为方便和清晰
Javascript正则表达式:<tr><tds+class=name>(.*?)</td><tds+class=xingbie>(.*?)</td>(<tds+class=dengji>(.*?)</td>)?(<tds+class=zhiye>(.*?)</td>)?</tr>
完整的Javascript程序如下:
<script type="text/javascript">
纯正 var str="<table><tr><td class=name>李四</td><td class=xingbie>男</td><td class=dengji>VIP</td><td class=zhiye>教师</td></tr><tr><td class=name>张三<穗裤激/td><td class=xingbie>男</td><td class=dengji>VIP</td></tr><tr><td class=name>王二</td><td class=xingbie>女</td></tr></table>";
var regex=/<tr><tds+class=name>(.*?)</td><tds+class=xingbie>(.*?)</td>(<tds+class=dengji>(.*?)</td>)?(<tds+class=zhiye>(.*?)</td>)?</tr>/ig;
var regex1=/<tr><tds+class=name>(.*?)</td><tds+class=xingbie>(.*?)</td>(<tds+class=dengji>(.*?)</td>)?(<tds+class=zhiye>(.*?)</td>)?</tr>/i;
var arr=str.match(regex);
for(var i=0;i<猜袜arr.length;i++){
var arr1=regex1.exec(arr[i]);
var s1="",s2="";
if(arr1[4]==null||arr1[4]=="") s1="0";
else s1=arr1[4];
if(arr1[6]==null||arr1[6]=="") s2="0";
else s2=arr1[6];
alert(arr1[1]+"-"+arr1[2]+"-"+s1+"-"+s2);
}
</script>
var s = "你的字符串";
var reg1 = /<tr>(?:(?!</tr>).)*</tr>/gi;
var reg2 = /<td class=([^>]+)>((?:(?!</td>).)*)</td>/gi
var result = [];
while(a1 = reg1.exec(s)){
手戚 var obj = 悉斗{};
while(a2 = reg2.exec(a1[0])){
obj[a2[1]] = 毕陆陵a2[2];
}
result.push(obj);
}
//运行结果是 result 集合,单个元素是 {dengji : "", name : "", xingbie: "", zhiye: ""}