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"].
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