J'ai un tableau comme celui-ci avec quelques valeurs: nom, nombre (int ou float) et%. Voici à quoi ça ressemble: ["Ingrédients", "Amidon de maïs 33.02%", "sucre 22.21%", "mer ...

-1
Michal Parciak 14 mars 2021 à 22:29

1 réponse

Meilleure réponse

J'ai fait ce qui suit:

const lines = ["Ingredients", " Corn starch 33.02%", " sugar 22.21%", " sea salt 20.27% [1]", " peas 10%"];
const results = [];
lines.forEach(line => {
  const filtered = line.split(/([\s\w]+)\s(\d+(?:\.\d+)?)(%?)\s?(?:\[\d\])?/g).filter(Boolean);
  results.push(filtered);
});

console.log(results)

Je ne suis pas un expert en regex, donc il y a sûrement des choses que j'ai manquées, mais cela semble fonctionner avec l'entrée donnée. Vous pouvez jouer avec ici: regexr

0
T J 14 mars 2021 à 20:16