Bonjour,
Comment savoir qu'une chaine est numérique ? qu'elle ne comporte pas de caractére alpha
Bonjour,
Comment savoir qu'une chaine est numérique ? qu'elle ne comporte pas de caractére alpha
Avec une regex :
edit :
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"; }
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!!
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.
)
- La programmation fonctionnelle en Perl : 1. Les opérateurs de liste; 2. Les fonctions d'ordre supérieur; 3. Étendre le langage.
- Comment utiliser des décorateurs en Perl: Un tutoriel pour changer le comportement d'une fonction sans en modifier le code source
- De Perl 5 à Perl 6 : 1. Les bases; 2. Les nouveautés; 3. Approfondissements; 4. Annexe 1: Ce qui change entre Perl 5 et Perl 6; Annexe 2: Les nouveautés de Perl 6.
- Les regex et grammaires de Perl 6
- Objets, classes et rôles en Perl 6 - Tutoriel de programmation orientée objet
- Tour d'horizon du nouveau langage Perl 6
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 !!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager