Aquí es lo más corta que podía llegar a:
'a\\,bcde,fgh,ijk\\,lmno,pqrst\\,uv'.replace(/([^\\]),/g, '$1\u000B').split('\u000B')
La idea detrás es encontrar todos los lugares donde coma no tiene el prefijo una barra diagonal inversa, reemplace aquellos con una secuencia que no es común que aparezca en sus cadenas y luego divida por esa cadena poco común.
Tenga en cuenta que las barras invertidas antes comas tienen que ser escapados usando otra barra invertida. De lo contrario, javascript trata el formulario \,
como coma escapada y produce simplemente una coma. En otras palabras, si no escapará de la barra diagonal inversa, javis ve esto: a\,bcde,fgh,ijk\,lmno,pqrst\,uv
como este a,bcde,fgh,ijk,lmno,pqrst,uv
.
pregunta duplicados? http: // stackoverflow.com/questions/820172/how-to-split-a-comma-separated-string-while-ignoring-escaped-commas –
@Eran esa pregunta es sobre Java. Desafortunadamente, Javascript no conoce el aspecto subyacente, por lo que la solución no funciona aquí. – stema
posible duplicado de [Javascript regex - string dividido] (http://stackoverflow.com/questions/4853118/javascript-regex-split-string) – outis