Чтобы удалить все фрагменты символов разрыва строки между двойными кавычками, необходимо сопоставить эти подстроки между подходящими начальными и конечными двойными кавычками.Таким образом, крайне важно знать, могут ли символы "
быть экранированными между разделителями "
.
В CSV буквальные двойные кавычки обычно удваиваются.Затем вы можете использовать
var s = '"Cell1","Cell\r\n#2","""Cell #3\r\nhere\nand there"""';
s = s.replace(/"(?:""|[^"])+"/g, function(x) { return x.replace(/[^\S\r\n]*[\n\r]\s*/g, ' ');});
console.log(s);
Регулярное выражение "(?:""|[^"])+"/g
соответствует "
, затем 1 или более вхождений подстроки ""
или любому символу, отличному от "
, а затем "
,Когда совпадение найдено, все символы CR и LF с любыми пробелами 0+ до и после них удаляются с помощью простой операции .replace(/[^\S\r\n]*[\n\r]\s*/g, ' ')
replace.
Если буквальные двойные кавычки экранируются обратной косой чертой, выможет использовать
/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/g
Если вы уверены, что двойные кавычки не экранированы, используйте
/"[^"]+"/g