javascript - 用换行符和制表符替换 tr 和 td 的单个正则表达式

标签 javascript jquery regex replace

我有 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';
})

Working example

关于javascript - 用换行符和制表符替换 tr 和 td 的单个正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36311441/

相关文章:

javascript - 正则表达式模式 - 简单的字符串模板,对象映射

javascript - 需要帮助将 Google map 集成到 WEBFOCUS 8

javascript - 如何自动点击元素

javascript - 如何在 JavaScript 中使用箭头函数克隆对象?

java - 如何拆分字符串,但还要保留分隔符?

javascript - 为什么 jQuery 不删除所有数据属性?

javascript - 用户滚动后如何防止 2 个视频同时工作

jquery - 使用 URL 中的参数选择 jQuery 选项卡

javascript - 使用具有多个标记的 JavaScript 正则表达式分割字符串并考虑转义分隔符

php - UTF-8 模式正则表达式中的非 ASCII 字符