Как разбить эту сложную строку - PullRequest
0 голосов
/ 24 августа 2018

У меня есть переменная строка mymvariable

, которая содержит:

864827,,,34200,Sète ,,,445958,,,30220,AIGUES MORTES,,,169807,,,34570,PIGNAN,,,546049,,,13006,MARSEILLE,,

Я хотел бы привести эту строку к массиву, подобному этому:

1 864827,,,34200,Sète ,,, 
2 445958,,,30220,AIGUES MORTES,,, 
3 169807,,,34570,PIGNAN,,, 
4 546049,,,13006,MARSEILLE,,

Я пытаюсь использовать:

var array = myvariable.split(",");

Но когда я делаю массив [0], который дает мне первое поле здесь:

864827

Я хотел бы иметь первую строку, когда я делаю массив [0] следующим образом:

1 864827 ,,, 34200, Sète ,,,

Isможно ли отформатировать строку следующим образом?

Спасибо вам

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Простое решение с использованием регулярных выражений:

const str = "864827,,,34200,Sète ,,,445958,,,30220,AIGUES MORTES,,,169807,,,34570,PIGNAN,,,546049,,,13006,MARSEILLE,,"
const array = str.split(/(\d+,,,\d+,[a-zA-Zéàêè ]+\s*,,,?)/).filter(Boolean);
console.log(array);
0 голосов
/ 24 августа 2018

Вы можете разбить массив и уменьшить массив и построить подмассивы для каждых 7 элементов.

var string = '864827,,,34200,Sète ,,,445958,,,30220,AIGUES MORTES,,,169807,,,34570,PIGNAN,,,546049,,,13006,MARSEILLE,,',
    array = string
        .split(',')
        .reduce((r, s, i) => r.concat([i % 7 ? r.pop().concat(s) : [s]]), []);

console.log(array[0]);
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }
...