我正在使用this code將表格保存爲CSV(我已將其更改爲包含標題並排除隱藏行)。表格單元格內的某處換行符會丟失,但我想將其保留爲\ r \ n。網上有很多類似的問題,但我仍然覺得jQuery有點神祕,不知何故我無法找到解決這個希望簡單的問題的方法。如何用 r n替換所有<br />使用jQuery
function exportTableToCSV($table, delimiter) {
var $rows = $table.find('tr:visible');
// Temporary delimiter characters unlikely to be typed by keyboard
// This is to avoid accidentally splitting the actual contents
var tmpColDelim = String.fromCharCode(11), // vertical tab character
tmpRowDelim = String.fromCharCode(0), // null character
// actual delimiter characters for CSV format
colDelim = '"' + delimiter + '"',
rowDelim = '"\r\n"',
// Grab text from table into CSV formatted string
csv = '"' + $rows.map(function (i, row) {
var $row = $(row),
$cols = $row.find('td, th');
return $cols.map(function (j, col) {
var $col = $(col),
text = $col.text();
return text.replace(/"/g, '""'); // escape double quotes
}).get().join(tmpColDelim);
}).get().join(tmpRowDelim)
.split(tmpRowDelim).join(rowDelim)
.split(tmpColDelim).join(colDelim) + '"',
// Data URI
csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv);
return csvData;
}
的jQuery沒有任何字符串處理函數這樣的。你應該使用普通的Javascript String.prototype.replace()方法。 – Barmar 2014-11-08 19:57:50
順便說一句,'text.replace('''''''')只會替換第一個引號,而不是所有的引號。您必須使用帶'g'修飾符的正則表達式來執行多個替換。 – Barmar 2014-11-08 19:58:50
謝謝,我已經改正了。 – 2014-11-10 03:16:45