admin管理员组文章数量:1418427
I'm using datatables exactly as the example here. So to export data I used a function that allows me to change <br>
with newlines in excel.
I used this:
return column === 5 ? data.replace( /<br\s*\/?>/ig, "\n"): data;
However when I try to add a second change I want to make to a different column it doesn't work... I tried adding this right below the first working replacement:
return column === 1 ? data.replace( /<.*?>/ig, ""): data;
I want to basically strip all html tags after first changing the <br>
to newlines. But as my code is now, the second part just gets ignored during export... Does anyone know what I am doing wrong?
Here is my full code:
var fixNewLine = {
exportOptions: {
format: {
body: function ( data, column, row ) {
return column === 5 ? data.replace( /<br\s*\/?>/ig, "\n"): data;
return column === 1 ? data.replace( /<.*?>/ig, ""): data;
}
}
}
};
var t2e = $('#table2excel').DataTable({
dom: 'Bfrtip',
buttons:[
$.extend( true, {}, fixNewLine, {
extend: 'excelHtml5'
} ),
'pdf', 'print', 'copy', 'csv' //, 'excel'
]
});
I'm using datatables exactly as the example here. So to export data I used a function that allows me to change <br>
with newlines in excel.
I used this:
return column === 5 ? data.replace( /<br\s*\/?>/ig, "\n"): data;
However when I try to add a second change I want to make to a different column it doesn't work... I tried adding this right below the first working replacement:
return column === 1 ? data.replace( /<.*?>/ig, ""): data;
I want to basically strip all html tags after first changing the <br>
to newlines. But as my code is now, the second part just gets ignored during export... Does anyone know what I am doing wrong?
Here is my full code:
var fixNewLine = {
exportOptions: {
format: {
body: function ( data, column, row ) {
return column === 5 ? data.replace( /<br\s*\/?>/ig, "\n"): data;
return column === 1 ? data.replace( /<.*?>/ig, ""): data;
}
}
}
};
var t2e = $('#table2excel').DataTable({
dom: 'Bfrtip',
buttons:[
$.extend( true, {}, fixNewLine, {
extend: 'excelHtml5'
} ),
'pdf', 'print', 'copy', 'csv' //, 'excel'
]
});
Share
Improve this question
edited Apr 12, 2019 at 23:28
mesqueeb
asked Mar 14, 2016 at 11:27
mesqueebmesqueeb
6,4047 gold badges52 silver badges85 bronze badges
2 Answers
Reset to default 3You can't have multiple return statement in code only first one will be executed, try this:
var fixNewLine = {
exportOptions: {
format: {
body: function ( data, column, row ) {
if (column === 5) {
data = data.replace(/<br\s*\/?>/ig, "\n");
}
return column === 1 ? data.replace(/<.*?>/ig, ""): data;
}
}
}
};
A switch statement to deal with each column individually worked really well for me. See my usage below...
var fixNewLine = {
exportOptions: {
format: {
body: function ( data, row, column, node ) {
switch(column){
case 1 : return column === 1 ? data.replace(/<.*?>/ig, "") : data; break;
case 2 : return column === 2 ? data.replace(/<.*?>/ig, "") : data; break;
case 3 : return column === 3 ? data.replace(/<.*?>/ig, "") : data; break;
case 4 : return column === 4 ? data.replace(/<.*?>/ig, "") : data; break;
case 5 : return column === 5 ? data.replace(/<.*?>/ig, "") : data; break;
case 6 : return column === 6 ? data.replace(/<.*?>/ig, "") : data; break;
default : return data; break;
}
}
}
}
};
本文标签: javascriptTrying to strip html from Datatables during exportStack Overflow
版权声明:本文标题:javascript - Trying to strip html from Datatables during export - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745279982a2651378.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论