Я пытаюсь дезинфицировать текст для экспорта 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
Почему последовательности побега не обнаружены в JavaScript? ⇐ Javascript
Форум по Javascript
-
Anonymous
1738358078
Anonymous
Я пытаюсь дезинфицировать текст для экспорта CSV. Цель состоит в том, чтобы гарантировать, что никакие ячейки CSV не начинались с определенных символов (=, +, -, @, вкладка, возврата перевозки). Кроме того, каждая ячейка должна быть завернута в двойные кавычки, префикс с одной цитатой, и все внутренние двойные кавычки должны быть сбежаны.
Несколько примеров: < /p>
[*] +Пользователь, записанный в [b] становится < /strong> < /em> '+Пользователь вошел в систему
[*] "David становится [/b] " "Дэвид
[*] larry [b] становится [/b] larry
[*] \ tdavid [b] становится [/b] \ tdavid
\ rworking [b] становится [/b] \ 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;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79404017/why-are-escape-sequences-not-detected-in-javascript[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия