Bonjour,
considérons "(4+5)(x+a)-3". Je voudrais obtenir "par(4+5)par(x+a)-3".
Peut-on aussi avoir une méthode qui repère un souci dans un cas comme "(4+5(x+a)-3" ?
Toute info. est bienvenue.
Bonjour,
considérons "(4+5)(x+a)-3". Je voudrais obtenir "par(4+5)par(x+a)-3".
Peut-on aussi avoir une méthode qui repère un souci dans un cas comme "(4+5(x+a)-3" ?
Toute info. est bienvenue.
Bon j'ai ceci qui marche : expr = expr.replace(/\(/g, 'parenthesis(');.
Je vais donc passer à une nouvelle demande. Comment faire pour remplacer tous les morceaux du type [...] par hooks[...] ? Si un crochet ouvrant est seul alors, il ne doit y avoir rien de changer, ou mieux une erreur de levée.
... ça, ça marche ?
Tu n'aurais pas fait une erreur en la recopiant dans ton post ?
Pour la partie remplacement, et pour rester dans le même type de solution que tu as déjà employée (String.replace) :
Et en ce qui concerne la vérification de l'égalité du nombre des crochets ouvrants et fermants, mieux vaut la faire avant et séparément. En faisant ça "à la dure" juste en comptant tout bêtement ça donnerait :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part var chaineCorrigee = ancienneChaine.replace(/\[/g, "hooks[");
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 // on aurait aussi pu faire une recherche successive avec indexOf, etc. // ceci n'est qu'un exemple à retravailler ^^ var nb_ouvrant = 0, nb_fermant = 0; for (var i = 0, iMax = ancienneChaine.length; i < iMax; ++i) { var c = ancienneChaine.charAt(i); if (c == "[") nb_ouvrant++; else if (c == "]") nb_fermant++; } if (nb_ouvrant != nb_fermant) { // ICI : traitement de l'erreur throw new rambCException();// ou ce que tu veux }
Merci pour les infos.
Au final, j'ai codé en dur la vérification avec en même temps le remplacement.
Partager