2009-09-22 32 views

Odpowiedz

0

- Edycja:

Rzeczywiście, ja lekko zgadzam się z siebie i zgadzają się z cletus. Potwierdź jak najwięcej (bez wchodzenia w szczegóły konkretnych rodzajów kart kredytowych [IMHO]) przed wysłaniem. I nie trzeba dodawać (mam nadzieję), że to sprawdzanie poprawności powinno być zrobione w JavaScript, aby zrobić to szybko, a następnie na serwerze, aby dwukrotnie sprawdzić (i dla osób niepełnosprawnych JavaScript).

- poprzedniej odpowiedzi:

Nie przeszkadza; po prostu pozwól usługodawcy zweryfikować, kiedy faktycznie próbujesz zapłacić. Nie ma uzasadnionego powodu, aby spróbować go zweryfikować samodzielnie. Możesz użyć this, jeśli naprawdę masz na to ochotę.

+6

Nie można się więcej nie zgodzić. Bramki płatnicze wymagają czasu. Powinieneś zrobić wszystko, co możliwe, aby upewnić się, że jest poprawny, zanim spróbujesz go użyć. – cletus

+1

cletus: Następnie wykonaj pobieżną kontrolę przy użyciu systemu Luhn i oczywiście upewnij się, że wszystkie wymagane dane są wysyłane do Ciebie przed wysłaniem. –

1

Myślę, że szukasz Luhn Algorithm. Jest to prosta formuła sumy kontrolnej służąca do sprawdzania różnych numerów identyfikacyjnych.

0

To zależy od tego, na ile dokładnie chcesz przeprowadzić wstępną walidację. Aby zweryfikować wszystko, co możliwe, należy obliczyć, jaka powinna być ostatnia cyfra karty i porównać ją z wprowadzonym, czego nie jest w stanie wykonać RegEx.

Algorytm i inne szczegóły można znaleźć w artykule this link, który zawiera również listę wspólnych przedrostków liczb, które można zweryfikować.

13

Zobacz ten link Finding or Verifying Credit Card Numbers z bywalcami Expressions

  • wizy:^4 [0-9] {12} (?: [0-9] {3})? $ Numery kart All Visa rozpocząć z 4. Nowe karty mają 16 cyfr. Stare karty mają 13.
  • MasterCard:^5 [1-5] [0-9] {14} $ Wszystkie numery MasterCard rozpoczynają się cyframi od 51 do 55. Wszystkie mają 16 cyfr.
  • American Express:^3 [47] [0-9] {13} Numery kart American Express zaczynają się od 34 lub 37 i mają 15 cyfr.
  • Klub Diners:^3 (?: 0 [0-5] | [68] [0-9]) [0-9] {11} Numery kart Diners Club zaczynają się od 300 do 305, 36 lub 38. Wszystkie mają 14 cyfr. Istnieją karty Diners Club, które zaczynają się od 5 i mają 16 cyfr. Są one wspólnym przedsięwzięciem Diners Club i MasterCard i powinny być przetwarzane jak karta MasterCard.
  • Odkryj:^6 (?: 011 | 5 [0-9] {2}) [0-9] {12} $ Odczytaj numery kart zaczynają się od 6011 lub 65. Wszystkie mają 16 cyfr.
  • JCB:^(?: 2131 | 1800 | 35 \ d {3}) \ d {11} $ Karty JCB rozpoczynające się od 2131 lub 1800 mają 15 cyfr. Karty JCB rozpoczynające się od 35 mają 16 cyfr.

Pa.

+1

Odkryj karty dodały nowe zakresy, oto zaktualizowane wyrażenie do kart odkryć '^ 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

+0

Co powiesz na China UNION Pay? –

Powiązane problemy