Test avant/arriere en regexp JavaScript

Fermé
devMan Messages postés 74 Date d'inscription jeudi 10 décembre 2009 Statut Membre Dernière intervention 16 septembre 2010 - 20 janv. 2010 à 12:59
devMan Messages postés 74 Date d'inscription jeudi 10 décembre 2009 Statut Membre Dernière intervention 16 septembre 2010 - 25 janv. 2010 à 15:20
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 jeudi 10 décembre 2009 Statut Membre Dernière intervention 16 septembre 2010 15
25 janv. 2010 à 12:59
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 mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 131
25 janv. 2010 à 15:04
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 jeudi 10 décembre 2009 Statut Membre Dernière intervention 16 septembre 2010 15
25 janv. 2010 à 15:20
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