Saltar al contenido

Detección automática del separador CSV en Javascript

Ya no necesitas investigar más en otros sitios ya que llegaste al espacio justo, poseemos la solución que buscas pero sin liarte.

Solución:

Un posible algoritmo para obtener los probables separadores es bastante simple y asume que los datos están bien formados:

  1. Para cada delimitador,
    1. Por cada línea,
      1. Divida la línea por el delimitador, marque el length.
      2. Si es length es no igual a la longitud de la última línea, este no es un delimitador válido.

Prueba de concepto (no maneja campos citados):

function guessDelimiters (text, possibleDelimiters) 
    return possibleDelimiters.filter(weedOut);

    function weedOut (delimiter) 
        var cache = -1;
        return text.split('n').every(checkLength);

        function checkLength (line) 
            if (!line) 
                return true;
            

            var length = line.split(delimiter).length;
            if (cache < 0) 
                cache = length;
            
            return cache === length && length > 1;
        
    

El length > 1 comprobar es asegurarse de que el split no devolvió la línea completa. Tenga en cuenta que esto devuelve un array de posibles delimitadores: si hay más de un elemento, tiene un problema de ambigüedad.

Otra solución es usar el detect método del csv-string paquete:

detectar (entrada: Cadena): Cadena Detecta el mejor separador.

    var CSV = require('csv-string');

    console.log(CSV.detect('a,b,c')); // OUTPUT : ","
    console.log(CSV.detect('a;b;c')); // OUTPUT : ";"
    console.log(CSV.detect('a|b|c')); // OUTPUT : "|"
    console.log(CSV.detect('atbtc'));// OUTPUT : "t"

Sección de Reseñas y Valoraciones

Acuérdate de que tienes autorización de agregar una reseña .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *