Partage
  • Partager sur Facebook
  • Partager sur Twitter

split avec regex

    14 juin 2018 à 14:18:23

    Bonjour,

    Dans une chaîne qui représente une formule mathématique, j'essaye de coloriser les variables.

    Donc j'essaye de tout récupérer dans un tableau pour pouvoir reconstruire ma chaîne avec les couleurs.

    var formula = 'a+b - c * abc';
    var splitted = formula.split(/([a-zA-Z\_]+)/g);
    
    // résultat [ "", "a", "+", "b", " - ", "c", " * ", "abc", "" ]

    Ca fonctionne assez bien mais je ne comprend pas ces chaines vide en début et fin de tableau.

    • Partager sur Facebook
    • Partager sur Twitter
      14 juin 2018 à 18:22:53

      C'est la parenthèse qui perturbe le résultat MDN précise sur cette page https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/split

      Si le séparateur est une expression rationnelle qui contient des parenthèses groupantes, à chaque fois que le séparateur correspond, les résultats (incluant tout résultat indéfini) des groupes iront dans le tableau retourné. Cependant, tous les navigateurs ne supportent pas cette possibilité.

      Il serait préférable de découper l'expression sur les espaces ou les vides avec un

      	var formula = 'a+b - c * abc';
      	var splitted = formula.split(/\s+|/g);
      	console.log(splitted)
      // [object Array]: ["a", "+", "b", "-", "c", "*", "a", "b", "c"]

      quitte à "maper" ensuite le tableau pour distinguer les variables et les signes

      -
      Edité par 007julien 14 juin 2018 à 18:31:20

      • Partager sur Facebook
      • Partager sur Twitter

      split avec regex

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown