IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

Expression régulière pour chaine vide


Sujet :

Ruby on Rails

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 171
    Points : 91
    Points
    91
    Par défaut Expression régulière pour chaine vide
    Salut,

    Etant donné que l'option :allow_nil => true ne semble pas fonctionner avec validates_format_of, je tente de rendre acceptable le non-remplissement du champ en changeant mon expression régulière.

    Mettons que mon expression régulière de base était monexpreg, je cherche tout simplement à autoriser une chaine vide ou tout autre chaine qui respecterait monexpreg. Vous voyez comment je peux faire?

    Ca doit être très simple, mais (|monexpreg) ne marche pas. Surement car il me manque l'expression régulière pour désigner une chaine vide. Quelle est-elle?

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 171
    Points : 91
    Points
    91
    Par défaut
    Après de multiples essais, j'ai trouvé qq chose.
    '^' permet de matcher une chaine vide en début de ligne et '$' est l'équivalent en fin de ligne. Avec le ? (0 ou 1 occurence), on s'en sort.
    Donc j'ai un truc du genre: /^monexpreg?$/
    Je comprends pas pourquoi le simple /monexpreg?/ ne fonctionne pas.

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 45
    Points : 48
    Points
    48
    Par défaut
    ne pas oublier que :
    ^ lorsqu'il n'est pas dans une liste et qu'il est suivi de quelque chose, veut dire commençant par

    $ placé à la fin veut dire quand à lui, finissant par.


    donc ta solution de fin peut être lu : commençant par et finissant par (rien ou monexpreg)

  4. #4
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    Si cela concerne une appli Rails alors il y en a encore plus simple sans utiliser expressions régulières:
    voir dans API Rails:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
     
    An object is blank if it‘s false, empty, or a whitespace string. For example, "", " ", nil, [], and {} are blank.
     
    This simplifies
     
      if !address.nil? && !address.empty?
     
    to
     
      if !address.blank?

Discussions similaires

  1. [RegEx] Expression régulière pour supprimer des doublons
    Par cbroissa dans le forum Langage
    Réponses: 5
    Dernier message: 20/05/2017, 02h59
  2. Réponses: 4
    Dernier message: 14/11/2008, 22h00
  3. [RegEx] Simple expression régulière pour ereg_replace
    Par aurapp dans le forum Langage
    Réponses: 6
    Dernier message: 12/03/2006, 13h34
  4. Expression régulière pour récupérer le nom d'un fichier
    Par calimero2611 dans le forum Langage
    Réponses: 5
    Dernier message: 24/02/2006, 20h00
  5. Expression Régulière pour float
    Par zebiloute dans le forum Langage
    Réponses: 5
    Dernier message: 26/09/2005, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo