Projet

Général

Profil

Development #42843

Mauvais comportement de la validation par regexp

Ajouté par Benjamin Dauvergne il y a presque 4 ans. Mis à jour il y a presque 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
13 mai 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Le code fait ça :

            def regex_validation(value):
                match = re.match(pattern, value)
                return bool(match and match.group() == value)

sur l'exemple suivant : value = '([0-9]|10)' ça ne validera jamais la chaîne '10' parce qu'il y a match partiel sur 1, la solution moche est d'apprendre aux gens à mettre les matchs les plus long au début ((10|[0-9]) mais c'est affreux. Plus propre serait d'apprendre aux gens à mettre ^ et $ en début et fin de regexp, ce qu'on ne veut pas parce que c'est idiot, ils veulent toujours faire ça.

Je propose à la place de modifier le code par :

            def regex_validation(value):
                return bool(re.match(r'^(?:%s)$' % pattern, value))

ainsi il sera implicite que les regexps doivent valider du début à la fin de la chaîne et le moteur de regexp se comportera normalement.


Fichiers

Révisions associées

Révision 531f3804 (diff)
Ajouté par Benjamin Dauvergne il y a presque 4 ans

misc: make regexp validate whole strings (#42843)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

  • Assigné à mis à Benjamin Dauvergne
#2

Mis à jour par Frédéric Péters il y a presque 4 ans

  • Projet changé de Authentic 2 à w.c.s.
#4

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

#5

Mis à jour par Frédéric Péters il y a presque 4 ans

  • Statut changé de Solution proposée à Solution validée
#6

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 531f3804f9aa3c1be787ebac197583d31d9305cd
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Wed May 13 17:30:29 2020 +0200

    misc: make regexp validate whole strings (#42843)
#7

Mis à jour par Frédéric Péters il y a presque 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF