2024-05-09 05:30:35
<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的相关方法来处理数据,较为方便和清晰
2024-05-09 13:31:56
Javascript正则表达式:<tr><td\s+class=name>(.*?)<\/td><td\s+class=xingbie>(.*?)<\/td>(<td\s+class=dengji>(.*?)<\/td>)?(<td\s+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><td\s+class=name>(.*?)<\/td><td\s+class=xingbie>(.*?)<\/td>(<td\s+class=dengji>(.*?)<\/td>)?(<td\s+class=zhiye>(.*?)<\/td>)?<\/tr>/ig;
var regex1=/<tr><td\s+class=name>(.*?)<\/td><td\s+class=xingbie>(.*?)<\/td>(<td\s+class=dengji>(.*?)<\/td>)?(<td\s+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>
2024-05-09 20:44:39
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: ""}
2024-05-09 10:03:12
2024-05-09 15:48:11