Почему последовательности побега не обнаружены в JavaScript?Javascript

Форум по Javascript
Ответить
Anonymous
 Почему последовательности побега не обнаружены в JavaScript?

Сообщение Anonymous »

Я пытаюсь дезинфицировать текст для экспорта CSV. Цель состоит в том, чтобы гарантировать, что никакие ячейки CSV не начинались с определенных символов (=, +, -, @, вкладка, возврата перевозки). Кроме того, каждая ячейка должна быть завернута в двойные кавычки, префикс с одной цитатой, и все внутренние двойные кавычки должны быть сбежаны.
Несколько примеров: < /p>

[*] +Пользователь, записанный в становится < /strong> < /em> '+Пользователь вошел в систему

[*] "David становится [/b] " "Дэвид

[*] larry становится larry

[*] \ tdavid становится \ tdavid

\ rworking становится \ rworking
Проблема в том, что моя режима/[\ r \ n \ t]/g не удаляет побег Последовательности, такие как \ tdavid, \ rworking. $.ajax({
url: url,
method: 'get',
dataType: 'json',
async: false,
data: data
}).done(function(data) {
result = data;

$('.logs').DataTable({
"data": result,
"columns": [
{"mData": "event_name"},
{"mData": "user_fullname"},
{"mData": "approver_fullname"},
{"mData": "requester_fullname"},
{"mData": "instance_link"},
{"mData": "group_name"},
{"mData": "time"}
],
stateSave: true,
"dom": 'lBfrtip',
"buttons": [
{
extend: 'csvHtml5',
title: 'Export',
text: 'Export',
exportOptions: {
format: {
body: function(data, row, column) {
var columnNames = ["event_name", "user_fullname", "approver_fullname", "requester_fullname", "instance_link", "group_name", "time"];
var columnName = columnNames[column];

if (columnName === "instance_link") {
return $(data).text();
}
if (["user_fullname", "approver_fullname", "requester_fullname"].includes(columnName)) {
return sanitizeField(data);
}
return data;
}
}
}
}
]
});
});
return false;
}
function sanitizeField(data) {
if (data === null || data === undefined) {
return '';
}

data = String(data);
data = data.replace(/"/g, '""');
data = data.replace(/[\r\n\t]/g, '');

if (/^[=+\-@']/.test(data)) {
data = '${data};
}
if (data.includes(',')) {
data = "${data}";
}

return data;
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... javascript
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»