let content = `
<table border="1" style="text-align: left">
<thead>
<tr>
<th>
姓名
</th>
<th>
年龄
</th>
<th>
身高
</th>
<th style="min-width:160px;">体重</th>
<th>听力</th>
<th style="min-width: 150px;">视力</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>20岁</td>
<td>150cm</td>
<td>
150kg
</td>
<td>正常</td>
<td>不正常</td>
</tr>
<tr>
<td colspan="6" style="text-align:center"><br/></td>
</tr>
<tr>
<td colspan="6" style="text-align:center;background-color: #e9e9e9;">其他人</td>
</tr>
<tr>
<td>李四</td>
<td>30岁</td>
<td>140cm</td>
<td>
180kg
</td>
<td>不正常</td>
<td>正常</td>
</tr>
<tr>
<td colspan="6" style="text-align:center;background-color: #f8f8f8;">
更新于:2022年7月6日
</td>
</tr>
</tbody>
</table>
<table>
</table>
`
function getSdkStandardList(content){
let tableBodyValList = [];
//获取表格html数组
let tableHtmlList = content.match(
/<table[^>]*>\s*(<thead[^>]*>|<tbody[^>]*>)?(\s*<tr[^>]*>[\s\S]*?<\/tr>\s*)*(<\/thead>|<\/tbody>)?\s*<\/table>/g
);
if(!tableHtmlList){
return tableBodyValList;
}
//获取第一个table表格
let tableHtml = tableHtmlList[0]
//过滤掉合并表格的数据
tableHtml = tableHtml.replaceAll(
/<tr[^>]*>\s*(\s*<td[^>]*colspan[^>]*>[\s\S]*?<\/td>\s*)*\s*<\/tr>/g,"");
//提取表格里面的内容html数组
let trHtmlList = tableHtml.match(
/<tr[^>]*>\s*(\s*<td[^>]*>[\s\S]*?<\/td>\s*){6}\s*<\/tr>/g
);
trHtmlList.forEach((trHtmlItem)=>{
//提取表格里面的内容数组
let tdList = trHtmlItem.replaceAll(/<td[^>]*>([\s\S]*?)<\/td>/g,"$1|").replace(/<tr[^>]*>/,"").replace(/<\/tr>/,"").split("|");
let tdValList = [];
tdList.some((tdItem,tdIndex)=>{
//只有6条
if(tdIndex>=6){
return true;
}
tdValList.push(tdItem.trim())
});
tableBodyValList.push(tdValList)
});
return tableBodyValList;
}
console.log(getSdkStandardList(content))
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交