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

VBScript Discussion :

Valider un numéro de carte de crédit


Sujet :

VBScript

  1. #1
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut Valider un numéro de carte de crédit

    J'ai ce script pour valider un numéro de carte de crédit avec cette condition :
    Le numèro doit être dans cet intervalle [222100 - 272099]
    J'ai débuté un petit peu mais je séche encore dans la regexp

    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
    Title = "Valid card number or not"
    CardNumber = InputBox("Please type your card number ",Title,"222100")
    if IsValidcard(CardNumber) = True Then
        MsgBox CardNumber & " The Card number is valid !",64,Title
    else
        MsgBox CardNumber & " The Card number is not valid !",16,Title
    End if
     
    Function IsValidCard(Num)
        Set RegularExpressionObject = New RegExp
        With RegularExpressionObject
            .Pattern = "^(2221[0-9][0-9])|(2[2-7]20[0-9][0-9])$"
            .IgnoreCase = False
            If .Test(Num)= True then
                IsValidCard = True
            end if
        End With
    End Function
    Merci de votre aide !

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Salut hackoofr

    Je ne vois pas où se situe le problème. Le code s'exécute correctement.

    Dans ton code je mettrais IsValidCard = .Test(num) sans la condition If....End If.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Citation Envoyé par l_autodidacte Voir le message
    Je ne vois pas où se situe le problème. Le code s'exécute correctement.

    Le motif est insuffisant. il ne peut pas valider ce nombre 260271 par exemple, qui est un nombre dans la plage valide [222100 - 272099].
    Une solution :
    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
    21
    22
    23
    24
    25
    26
    Title = "Valid card number or not"
    Do 
        CardNumber = InputBox("Please type your card number ",Title,"222100")
        If IsValidcard(CardNumber) = True Then
            MsgBox CardNumber & " The Card number is valid !",64,Title
        Else
            MsgBox CardNumber & " The Card number is not valid !",16,Title
        End if
    Loop Until CardNumber = ""
    '**********************************************************************
    Function IsValidCard(Num)
        IsValidCard = False
        Set regEx = New RegExp
        regEx.Pattern = "^\d{6}$"
        If regEx.Test(Num) then
            x = CDbl(num)
            if x >= 222100 AND x <= 272099 Then
                IsValidCard = True
            Else
                'not in range
            End If
        Else
            'not 6 digits
        end if
    End Function
    '**********************************************************************

  4. #4
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Et si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function IsValidCard(Num)
        IsValidCard = (Num >= 222100 And Num <= 272099)
    End Function
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2000] Validation d'un numéro de carte bancaire
    Par Lorenz dans le forum VBA Access
    Réponses: 3
    Dernier message: 03/07/2010, 17h13
  2. [PHP-JS] Validation de numéro de téléphone
    Par Dsphinx dans le forum Langage
    Réponses: 7
    Dernier message: 22/11/2006, 09h48
  3. paiement par carte de crédit sur votre site
    Par fadex dans le forum E-Commerce
    Réponses: 4
    Dernier message: 04/09/2006, 10h34
  4. [Sécurité] Authenticité carte de crédit
    Par benassis dans le forum Langage
    Réponses: 3
    Dernier message: 24/08/2006, 21h56
  5. [Sécurité] Sécuriser l'envoi d'un numéro de carte
    Par Alexino2 dans le forum Langage
    Réponses: 23
    Dernier message: 02/07/2006, 22h13

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