我想<tr>
从javascript中的输入字符串中解析一些。我尝试使用正则表达式(<tr[^>]*>(?:.(?!</tr>))*.</tr>)*
。但我只得到最后一个<tr>
。另请参阅jsfiddle。
$("#container").append(content);
parts = new RegExp("^(.*tbody[^>]*>)(.*)(</tbody>.*)").exec(content);
table = parts[1] + parts[3];
rowString = parts[2];
$("#rowString").text(rowString);
// This is the interesting row:
rows = new RegExp("(<tr[^>]*>(?:.(?!</tr>))*.</tr>)*").exec(rowString);
$("#count").text(rows.length - 1 + " row(s) found");
for (rowIndex = 1; rowIndex < rows.length; rowIndex += 1) {
rowListItem = $("<li></li>");
rowListItem.text(rows[rowIndex]);
$("#list").append(rowListItem);
}
更新
感谢您的回答。我会按照 DhruvPathak 建议的方式去做。不幸的是,jQuery 不是选项,因为它有一个“RangeError: Maximum call stack size exceeded”的大表。尽管我不再需要它,但有人知道我的正则表达式有什么问题吗?