"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo dividir una cadena por comas, ignorando las comas entre comillas dobles usando JavaScript?

¿Cómo dividir una cadena por comas, ignorando las comas entre comillas dobles usando JavaScript?

Publicado el 2024-12-26
Navegar:902

How to Split a String by Commas, Ignoring Commas Within Double Quotes Using JavaScript?

Dividir una cadena por comas, ignorando las comas entre comillas dobles usando JavaScript

Para abordar el desafío de dividir una cadena por comas manteniendo el doble segmentos entre comillas, podemos utilizar expresiones regulares en JavaScript. Aquí se explica cómo:

var str = 'a, b, c, "d, e, f", g, h';
var arr = str.match(/(".*?"|[^",\s] )(?=\s*,|\s*$)/g);

// Handle the case of no matches to prevent errors
arr = arr || [];

// Iterate over the matches and display them
for (var i = 0; i 

Esta expresión regular emplea dos grupos de captura para hacer coincidir subcadenas de interés:

  • Grupo 1: Coincide con segmentos entre comillas dobles ("d, e, f ") usando un operador codicioso (.*?) para capturar todo lo que esté entre comillas dobles.
  • Grupo 2: Coincide con cualquier otro secuencia de caracteres (por ejemplo, "a", "g") que no contiene comillas dobles, comas ni espacios en blanco ([^",\s] ).

La aserción de anticipación (? =\s*,|\s*$) garantiza que la coincidencia sea seguida por un espacio en blanco y una coma o el final de la cadena. Esto garantiza que solo capturemos segmentos separados por comas.

Al hacer coincidir los segmentos entrecomillados y no entrecomillados, esta solución divide con precisión la cadena dada en una matriz de seis elementos: ["a", "b", "c ", "d, e, f", "g", "h"].

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3