我有 HTML 格式的表结构。我需要更换<tr>
与 /n
和<td>
与 '/t' 使用正则表达式。我所做的如下:
var dataval = [].slice.call($("#printdiv").find("table tr")).map(function(row){
var a = row.textContent.trim().replace(/td/gi,"\t");
return a;
}).join("\r\n");
它正在部分工作,但是 tab
不在 <td>
之间.
最佳答案
Firstly, never use RegEx to parse HTML 。其次,您可以通过构建一个代表所有 tr
的二维数组来实现这一点。和td
表中的元素,如下所示:
var tableData = $('table tr').map(function() {
return [$(this).find('td').map(function() {
return $(this).text();
}).get()];
}).get();
注意第二个的返回值map()
调用需要放置在另一个数组中,因为 jQuery 烦人地展平了 map()
响应中的第一个子数组。 .
从那里您可以构建一个字符串,每个单元格用制表符分隔,每行用一个新行分隔。像这样的事情:
var output = '';
$.each(tableData, function(i, row) {
$.each(row, function(i, cell) {
output += cell + '\t';
})
output += '\n';
})
关于javascript - 用换行符和制表符替换 tr 和 td 的单个正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36311441/