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

Langage Perl Discussion :

test chaine numérique


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut test chaine numérique
    Bonjour,

    Comment savoir qu'une chaine est numérique ? qu'elle ne comporte pas de caractére alpha

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Décembre 2012
    Messages : 43
    Points : 91
    Points
    91
    Par défaut
    Avec une regex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ( $var =~ m/^\d+$/ ) {
    print " numérique\n";
    }
    else {
    print " alphanumérique\n";
    }
    edit :
    s'il y a présence du caractère ''-", il faut modifier la ragex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ( $var =~ m/^-?\d+$/ ) {
    print " numérique\n";
    }
    else {
    print " alphanumérique\n";
    }
    Saaaaluuut Nounou!!

  3. #3
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Il faut aussi tenir compte d'éventuels points ou virgules (sépérateurs décimal ou milliers) dans le nombre. (Je ne parle pas de notation scientifique, de nombres complexes ou de numériques hexadécimaux, ce sont des cas particuliers, mais il ne fait les oublier complètement.

    )

  4. #4
    Membre régulier Avatar de elvivo
    Inscrit en
    Mai 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 105
    Points : 104
    Points
    104
    Par défaut
    Ou tu peux faire ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    use strict;
    use warnings;
     
    use Test::More;
     
    ok(isNumber('123'), '123 is a number');
    ok(isNumber('-123'), '-123 is a number');
    ok(isNumber('123.456'), '123.456 is a number');
    ok(isNumber('-123.456'), '-123.456 is a number');
    ok(!isNumber('123a'), '123a is NOT a number');
    ok(isNumber('0'), '0 is a number');
     
    done_testing();
     
    sub isNumber {
    	my ($num) = @_;
     
    	no warnings;
    	return ($num + 0e0 eq $num) ? 1 : 0;
    }
    In code we trust !!

Discussions similaires

  1. Test chaine de caractère
    Par judavid dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/05/2008, 23h02
  2. Extraction de chaines numériques d'un VARCHAR
    Par Tententai dans le forum SQL
    Réponses: 16
    Dernier message: 25/07/2007, 18h04
  3. Fonction pour une chaine numérique
    Par miya dans le forum VB.NET
    Réponses: 5
    Dernier message: 10/05/2007, 15h21
  4. conversion une chaine numérique en lettre
    Par nazimb dans le forum ASP
    Réponses: 1
    Dernier message: 20/11/2005, 18h39

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