//这是我的字符串
let myStr = `<table style="width: 257px; height: 189px;" border="1">
<tbody>
<tr>
<td style="width: 45.4403px;">statustd>
<td style="width: 68.7216px;">create_attd>
<td style="width: 76.0511px;">update_attd>
<td style="width: 54.6023px;">gendertd>
tr>
<tr>
<td style="width: 45.4403px;">typetd>
<td style="width: 68.7216px;"> td>
<td style="width: 76.0511px;"> td>
<td style="width: 54.6023px;"> td>
tr>
tbody>
table>`
let myHopeResults = ['status','create_at','update_at','gender','type'] //空格不装进来
可以用一个正则一次性拿到所有的内容吗?就是不需要循环
let myStr = `<table style="width: 257px; height: 189px;" border="1">
<tbody>
<tr>
<td style="width: 45.4403px;">status</td>
<td style="width: 68.7216px;">create_at</td>
<td style="width: 76.0511px;">update_at</td>
<td style="width: 54.6023px;">gender</td>
</tr>
<tr>
<td style="width: 45.4403px;">type</td>
<td style="width: 68.7216px;"> </td>
<td style="width: 76.0511px;"> </td>
<td style="width: 54.6023px;"> </td>
</tr>
</tbody>
</table>`;
let regex = /(?<=<td[^>]*>)(\S*)(?=<\/td>)/g;
let myHopeResults = myStr.match(regex);
console.log(myHopeResults);
你可以使用正则表达式和replace方法来提取td标签中的内容,例如:
let myStr = `<table style="width: 257px; height: 189px;" border="1">
<tbody>
<tr>
<td style="width: 45.4403px;">status</td>
<td style="width: 68.7216px;">create_at</td>
<td style="width: 76.0511px;">update_at</td>
<td style="width: 54.6023px;">gender</td>
</tr>
<tr>
<td style="width: 45.4403px;">type</td>
<td style="width: 68.7216px;"> </td>
<td style="width: 76.0511px;"> </td>
<td style="width: 54.6023px;"> </td>
</tr>
</tbody>
</table>`;
let pattern = /<td[^>]*>(.*?)<\/td>/g;
let results = [];
let match = pattern.exec(myStr);
while (match != null) {
let content = match[1].trim();
if (content !== '') {
results.push(content);
}
match = pattern.exec(myStr);
}
console.log(results);
// 输出: ["status", "create_at", "update_at", "gender", "type"]
这里使用了正则表达式/<td[^>]>(.?)</td>/g来匹配td标签和其中的内容,并使用while循环和exec方法来多次匹配并提取其中的内容。提取的结果放入results数组中,并使用trim方法去掉空格,最后输出results数组即可。
回答不易,望采纳!
你这是和正则杠上了啊
// 字符间无空格的
myStr.match(/([^\s>]+)(?=<\/td)/gi)
// 需匹配的字符间有空格的
myStr.match(/([^\s>]+(\s+[^>]+)*)(?=<\/td)/gi)