Handle special characters in strings

This commit is contained in:
Julia Friesel
2018-08-06 09:27:28 +02:00
parent f8007fac14
commit 9e8005960e
+19 -1
View File
@@ -64,7 +64,8 @@ function transformToCsv(cycleDays) {
const rows = cycleDays
.map(day => {
return columnNames.map(column => {
return objectPath.get(day, column, '')
const val = objectPath.get(day, column, '')
return typeof val === 'string' ? csvify(val) : val
})
})
.map(row => row.join(','))
@@ -72,3 +73,20 @@ function transformToCsv(cycleDays) {
rows.unshift(columnNames.join(','))
return rows.join('\n')
}
function csvify (val) {
// escape double quotes
val = val.replace(/"/g, '""')
val = val.toLowerCase()
const hasSpecialChars = (
val.includes('\n') ||
val.includes('\t') ||
val.includes(',') ||
val.includes(';') ||
val.includes('.') ||
val.includes('\'')
)
return hasSpecialChars ? `"${val}"` : val
}