Test avant/arriere en regexp JavaScript

devMan Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   -  
devMan Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai essauyé d'utiliser:
(?=X) positive lookahead
(?!X) negative lookahead
(?<=X) positive lookbehind
(?<!X) negative lookbehind


var regex = new RegExp("(?<=\()[1-9](?=(and|or))", "g");


mais j'ai un erreur :

invalid quantifier ?<=()[1-9](?=(and|or))

Y'at-il quelqu'un peut me dire pourquoi ??

merci d'avance
A voir également:

3 réponses

devMan Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   15
 
il me semble que les regxp JavaScript ne support pas les look-behinds (test en arriere)
3
heyquem Messages postés 759 Date d'inscription   Statut Membre Dernière intervention   131
 
Bonjour,

Il faut faire des tests pour bien saisir quelles sont les possibilités, car les docus sont insuffisantes pour bien comprendre.



Par exemple:


var regex = new RegExp("(?<=\()[1-9]", "g");
appliqué à
'fdd(8jjj’
produit elle un objet Match ?


var regex = new RegExp("[1-9](?=and)", "g");
appliqué à
'aaaaa7and jjj’
produit elle un objet Match ?


Tu sauras alors si les look ahead et behind assertions sont supportées par JavaScript







Je viens par exemple de découvrir qu’en Python, un groupe peut être défini dans une look-ahead assertion, quoique la docu dise le contraire.

Ainsi

ch = 'wdcwd8andhgu'
print re.search("[1-9](?=(and|or))",ch).groups()

ch = 'wdcwd8orhgu'
print re.search("[1-9](?=(and|or))",ch).groups()

donne
('and',)
('or',)
0
devMan Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   15
 
Re,
merci de votre reponse,
en fait j'ai une zone de text ds laquelle l'utilisateur peut saisi des chaine de caracteres:
a condition que les valeurs permise sont : chiffres, and, or, parenthese.
et

- chaque chiffre est suivi soit :
* - or ou and
* - )
* - rien (fin de la chaine)
et precédé (le chiffre) par :
* - or ou and
* - (
* - rien (fin de la chaine)

merci de m'aider
0