Quelle est la bonne façon de vérifier une carte de crédit avec une regex? Si celui à utiliser il y a des tonnes en ligne. Sinon comment vérifier?Vérification de carte de crédit avec regex?
Répondre
How can I use credit card numbers containing spaces? couvre tout ce dont vous avez besoin.
- Edit:
Enfait, je vais un peu en désaccord avec moi-même et d'accord avec Cletus. Validez autant que vous le pouvez (sans entrer dans les détails des types spécifiques de cartes de crédit [IMHO]) avant de l'envoyer. Et il va de soi (espérons-le), que cette validation devrait se faire en JavaScript, pour le rendre rapide, puis sur le serveur, pour revérifier (et pour les handicapés JavaScript).
- Réponse précédente:
Ne vous embêtez pas; Laissez simplement le fournisseur vérifier quand vous essayez réellement le paiement. Aucune raison légitime pour essayer de le vérifier vous-même. Vous pouvez cependant utiliser this, si vous en avez vraiment envie.
Je pense que vous cherchez le Luhn Algorithm. C'est une formule de contrôle simple utilisée pour valider une variété de numéros d'identification.
Cela dépend de la précision que vous souhaitez obtenir pour votre pré-validation. Pour valider tout ce que vous pouvez, vous devez calculer le dernier chiffre de la carte et le comparer à ce qui est entré, ce qu'un RegEx ne peut pas faire.
Pour l'algorithme et d'autres détails, voir this link, qui fournit également une liste de préfixes de nombres communs que vous pourriez valider.
Voir ce lien avec Finding or Verifying Credit Card Numbers Réguliers Expressions
- Visa:^4 [0-9] {12} (: [0-9] {3})? $ Tous les numéros de carte Visa commencent par un 4. Les nouvelles cartes ont 16 chiffres. Les anciennes cartes ont 13.
- MasterCard:^5 [1-5] [0-9] {14} $ Tous les numéros MasterCard commencent par les numéros 51 à 55. Tous ont 16 chiffres. American Express:^3 [47] [0-9] {13} $ Les numéros de cartes American Express commencent par 34 ou 37 et comportent 15 chiffres.
- Diners Club:^3 (?: 0 [0-5] | [68] [0-9]) [0-9] {11} $ Les numéros Diners Club commencent par 300 à 305, 36 ou 38. Tous ont 14 chiffres. Il y a des cartes Diners Club qui commencent par 5 et ont 16 chiffres. Il s'agit d'une joint-venture entre Diners Club et MasterCard, et devrait être traitée comme une carte MasterCard.
- Découvrez:^6 (?: 011 | 5 [0-9] {2}) [0-9] {12} $ Les numéros de cartes Discover commencent par 6011 ou 65. Tous ont 16 chiffres. JCB:^(?: 2131 | 1800 | 35 \ d {3}) \ d {11} $ Les cartes JCB commençant par 2131 ou 1800 ont 15 chiffres. Les cartes JCB commençant par 35 ont 16 chiffres.
Au revoir.
Les cartes Discover ont ajouté de nouvelles gammes, voici une regex mise à jour pour les cartes Discover '^ 6 (?: 0110 [0-9] | 011 [2-4] [0-9] | 01174 | 0117 [7-9 ] | 0118 [6-9] | 0119 [0-9] | 4 [4-9] [0-9] {3} | 5 [0-9] {4}) [0-9] {10} $ ' – realgt
que diriez-vous de China UNION Pay? –
- 1. Enregistrement des informations de carte de crédit
- 2. Passerelle de paiement par carte de crédit en PHP?
- 3. Accepter les paiements par carte de crédit/echeck
- 4. Traitement des paiements par carte de crédit en ligne
- 5. Appareil mobile Windows avec balayage de carte de crédit et imprimante?
- 6. Meilleures pratiques pour prendre et stocker des informations de carte de crédit avec PHP
- 7. PHP - vérification de la balise folksonomy regex
- 8. Nom de la banque à partir des détails de la carte de crédit?
- 9. Prendre des informations de carte de crédit en ligne sans traitement - comment le faire?
- 10. Autoriser et charger une carte de crédit pour abonnement à la demande
- 11. Quelles sont les options disponibles pour accepter les paiements par carte de crédit via un iPhone?
- 12. Paiements par carte de crédit et notifications sur Google App Engine
- 13. Comment créer une passerelle de carte de crédit sécurisée à l'aide de paypal/ruby sur rails/marchand actif
- 14. Vérification du contenu d'une carte dans une autre carte dans java
- 15. Vérification de contenu de chaîne avec Javascript
- 16. Vérification de la validité du numéro de version avec Perl
- 17. Remplacement de Regex avec Emacs
- 18. Séquence de vérification avec requête SQL
- 19. Carte de développement intégrée avec caméra
- 20. Problème de carte avec JPA/Hibernate/PG
- 21. position de chaîne de la carte à numéro de ligne dans la sortie regex
- 22. Recherche de groupes de lettres avec regex
- 23. multiset, carte et carte de hachage complexité
- 24. comment valider des éléments de carte dynamique
- 25. CoreData: Vérification de Null
- 26. Quelle est l'importance d'un certificat sécurisé pour le traitement interne des cartes de crédit?
- 27. Vérification de l'expiration de session avec Facebook Connect et .Net
- 28. carte winforms avec des liens.
- 29. Existe-t-il un meilleur algorithme .NET pour le chiffrement des cartes de crédit?
- 30. Meilleure façon d'obtenir un pointage de crédit (par exemple, FICO) par programme
Pour être en désaccord plus. Les passerelles de paiement prennent du temps. Vous devriez faire tout son possible pour vous assurer que c'est valide avant d'essayer de l'utiliser. – cletus
cletus: Faites ensuite une vérification rapide en utilisant le système Luhn, et assurez-vous évidemment que toutes les données requises vous sont envoyées avant de l'envoyer. –