Verifier si un numero de telephone est valide

Soyez le premier à donner votre avis sur cette source.

Snippet vu 35 576 fois - Téléchargée 34 fois

Contenu du snippet

Voila une fonction qui vérifie un numéro de téléphonne de 10 chiffre contient uniquement des chiffres

Source / Exemple :


function IsTelValide(src:string):bool;
  const Num = '0123456789'; var B:integer;
begin
for B := 1 to 10 do
  if pos(copy(src,b,1), num) = 0 then
    begin
      result := false;
      exit;
    end
  else
    result := true;
end;

Conclusion :


Si on peut améliorer le code ou s'il existe un manière plus simple d'y arriver veullez m'en faire pare svp

A voir également

Ajouter un commentaire

Commentaires

ni69
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
7 -
Tu peux faire aussi comme ça :

function IsNumeric(scr:string):Boolean;
begin
result := true;
try
StrToFloat(scr); // utilisation de Float pour la détection de nombres à virgule ;)
except
result := false
end;
end;

Malgré tout, ta fonction a l'avantage de pouvoir être utilisée dans l'EDI malgré le compilateur. En effet, ce que je te propose ne marche qu'en dehors de l'EDI, dans un prog déjà compilé, sans les alertes du compilateur dues à except :P
Conseil : ce serait bien que tu rajoutes la détection de la virgule dans ta chaîne de caractères pour permettre de faire des tests avec des extended :)

@+
Nico
jmp77
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
4 -
Hello,

Attention La fonction ISNumeric existe deja par défaut sous delphi :

Unit: IdGlobal

Determines if a character is a numeric digit.


function IsNumeric(c: char): Boolean;

Parameters

c: char

Character to be examined.


Returns

Boolean - True if the character is a numeric digit.


Description

IsNumeric is a Boolean function that indicates if the character in c contains a numeric digit in the range '0'..'9'.

Sinon moi je ferrais ceci :
function IsInteger(src:string):bool;

begin
Result := True;

Try
StrToInt(Src);
Except
Result := False;
end;
end;

++,
JMP77.
jmp77
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
4 -
Oups désolé Ni69 mais j'avais ouvert la source et j'etais partis a autre chose et je n'avais pas vu ton commentaire au moment ou j'ai posté.

Mais les grands esprits se rencontre a ce que je vois lol.
cs_moustachu
Messages postés
1079
Date d'inscription
jeudi 14 novembre 2002
Statut
Membre
Dernière intervention
1 janvier 2012
-
ou comme ça aussi
Function IsNumeric(p_varIn: Variant) : Boolean;
var
intCode: Integer;
extValue: Extended;
begin
// Si le variant est de type String
if VarIsStr(p_varin) then
begin
// Test si peut correspondre à Extended
val(p_varIn, extValue, intCode);
// Si code=0 -> p_varIn est "extended"
Result :(intCode 0);
end else begin
// Test Si variant est numérique
result := VarIsNumeric(p_varin);
end;
end;

Ca te permet de savoir si ton nombre est numérique (dont nombre à virgule).

++
Moustachu
ni69
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
7 -
jmp77 >> lol ;)

moustachu >> Ce code me parait un peu bricolé... ;)
Je reste à StrToFloat :P

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (sosodef88)