> str.match(/('[^']+'|[^,]+)/g)
["A", "B", "C", "E", "'F,G,bb'", "H", "'I9,I8'", "J", "K"]
A pesar de que leas esto, es posible que no tenidos para angulares casos donde, por ejemplo:
'bob\'s'
es una cadena en la que se escaparon '
a,',c
a,,b
a,b,
,a,b
a,b,'
',a,b
',a,b,c,'
algunos de los anteriores se manejan correctamente por este; otros no lo son Recomiendo encarecidamente que las personas utilicen una biblioteca que haya pensado en esto, para evitar cosas como vulnerabilidades de seguridad o errores sutiles, ahora o en el futuro (si expandes tu código o si otras personas lo usan).
Explicación de la expresión regular:
('[^']+'|[^,]+)
- significa partido ya sea'[^']+'
o[^,]+
'[^']+'
significa cita ... uno-o-no-más cotizaciones ... citar.
[^,]+
significa una sola o más no comas
Nota: por el consumo de la cadena entre comillas antes de la cadena sin comillas, hacemos el análisis de la cadena sin comillas caso más sencillo.
posible duplicado de [código Javascript para analizar datos CSV] (http://stackoverflow.com/questions/1293147/javascript-code-to-parse-csv-data) – stema