Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Nouveau Membre du Club
    Inscrit en
    mars 2006
    Messages
    552
    Détails du profil
    Informations forums :
    Inscription : mars 2006
    Messages : 552
    Points : 33
    Points
    33

    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 Jean Michel
    Ingénieur intégration
    Inscrit en
    décembre 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Nom : Homme Jean Michel
    Localisation : France

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

    Informations forums :
    Inscription : décembre 2012
    Messages : 43
    Points : 81
    Points
    81

    Par défaut

    Avec une regex :
    Code :
    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 :
    1
    2
    3
    4
    5
    6
    if ( $var =~ m/^-?\d+$/ ) {
    print " numérique\n";
    }
    else {
    print " alphanumérique\n";
    }

  3. #3
    Expert Confirmé

    Homme Profil pro Laurent R.
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent R.
    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 : 1 203
    Points : 2 533
    Points
    2 533

    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.

    )
    Mes articles sur La programmation fonctionnelle en Perl publiés sur ce site:

    ________
    Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.

  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 : 71
    Points
    71

    Par défaut

    Ou tu peux faire ca:
    Code :
    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 !!

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •