"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como dividir uma string por vírgulas, ignorando vírgulas entre aspas duplas usando JavaScript?

Como dividir uma string por vírgulas, ignorando vírgulas entre aspas duplas usando JavaScript?

Publicado em 2024-12-26
Navegar:665

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

Dividir uma string por vírgulas, ignorando vírgulas entre aspas duplas usando JavaScript

Para enfrentar o desafio de dividir uma string por vírgulas preservando o dobro segmentos entre aspas, podemos utilizar expressões regulares em JavaScript. Veja como:

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 expressão regular emprega dois grupos de captura para corresponder às substrings de interesse:

  • Grupo 1: Corresponde aos segmentos entre aspas duplas ("d, e, f ") usando um operador ganancioso (.*?) para capturar tudo entre aspas duplas.
  • Grupo 2: Corresponde a qualquer outra sequência de caracteres (por exemplo, "a", "g") que não contém aspas duplas, vírgulas ou caracteres de espaço em branco ([^",\s] ).

A afirmação antecipada (?=\ s*,|\s*$) garante que a correspondência seja seguida por um espaço em branco e vírgula ou pelo final da string. Isso garante que capturamos apenas segmentos separados por vírgula.

Ao combinar segmentos entre aspas e sem aspas, esta solução divide com precisão a string fornecida em uma matriz de seis elementos: ["a", "b", "c ", "d, e, f", "g", "h"].

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3