Précédent   Forum du club des développeurs et IT Pro > Autres langages > Perl > Langage
Langage Toutes vos questions sur les scripts Perl en général. Avant de poster, veuillez consulter les FAQs perl, les cours Perl, les critiques de livres et les sources Perl.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 06/12/2012, 10h27   #1
vince2005
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 511
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 511
Points : 32
Points : 32
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
vince2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2012, 11h32   #2
Jiheme44
Membre du Club
 
Homme Jean Michel
Ingénieur intégration
Inscription : décembre 2012
Messages : 26
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 : 26
Points : 46
Points : 46
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";
}
Jiheme44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2012, 13h16   #3
Lolo78
Membre Expert
 
Homme Laurent R.
Conseil - Consultant en systèmes d'information
Inscription : mai 2012
Messages : 572
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 : 572
Points : 1 124
Points : 1 124
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.

)
__________________
Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.
Lolo78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2012, 15h10   #4
elvivo
Membre régulier
 
Avatar de elvivo
 
Inscription : mai 2002
Messages : 105
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 105
Points : 71
Points : 71
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 !!
elvivo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h20.


 
 
 
 
Partenaires

Hébergement Web