Bonjour à tous,
J'ai cru comprendre que JS ne gère pas les assertions du coup je ne sais pas comment écrire cette REGEXP (que j'ai essayé d'écrire de plusieurs façons, qui fonctionnent toutes en PHP):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
var monMotif = new RegExp('\babc=([^;]+);?', 'g'),
    myString = 'abc=abc0; aabc=aabc; abc=abc1; aaabc=aaabc aabc=aabc; abc=abc2';
document.write(myString.match(monMotif)); // null
 
monMotif = new RegExp('(?<!\w)abc=([^;]+);?'); 
document.write(myString.match(monMotif)); // invalid regexp group
 
monMotif = new RegExp('(?:\A|;\s)abc=([^;]+);?');
document.write(myString.match(monMotif)); // null
Une erreur courante (qu'on m'a déjà proposée) serait de me répondre:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
monMotif = new RegExp('(?:;\s)?abc=([^;]+);?', 'g');
document.write(myString.match(monMotif)); // abc=abc0;,abc=aabc;,abc=abc1;,abc=aaabc aabc=aabc;,abc=abc2
Puisque comme vous le voyez cela récupère tout puisque l'ancrage avec une assertion n'est pas possible.
PS: je sais qu'on peut résoudre ce problème autrement, j'aimerais juste savoir si il y a un moyen de le résoudre en JS avec des REGEXP.
PS2: ne faites pas attention à l'objet RexExp, j'ai fait un copier collé qui contenait une variable dans la RegEx (d'où l'obligation de créer un objet).

Quelqu'un a une idée ?