Вот самое короткое, что я могу придумать:
'a\\,bcde,fgh,ijk\\,lmno,pqrst\\,uv'.replace(/([^\\]),/g, '$1\u000B').split('\u000B')
Идея состоит в том, чтобы найти все места, где запятая не имеет префикса с обратной косой чертой, заменить те строки, которые редко встречаются в ваших строках, а затем разделить на эту необычную строку. *
Обратите внимание, что обратная косая черта перед запятыми должна быть экранирована с помощью другой обратной косой черты. В противном случае javascript рассматривает форму \,
как экранированную запятую и выдает из нее просто запятую! Другими словами, если вы не избежите обратной косой черты, javascript видит это: a\,bcde,fgh,ijk\,lmno,pqrst\,uv
как a,bcde,fgh,ijk,lmno,pqrst,uv
.