Test avant/arriere en regexp JavaScript
devMan
Messages postés
75
Statut
Membre
-
devMan Messages postés 75 Statut Membre -
devMan Messages postés 75 Statut Membre -
Bonjour,
j'ai essauyé d'utiliser:
(?=X) positive lookahead
(?!X) negative lookahead
(?<=X) positive lookbehind
(?<!X) negative lookbehind
mais j'ai un erreur :
Y'at-il quelqu'un peut me dire pourquoi ??
merci d'avance
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
Configuration: Linux Firefox 3.5.7
3 réponses
-
il me semble que les regxp JavaScript ne support pas les look-behinds (test en arriere)
-
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',) -
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