2009-09-22 25 views

答えて

0

- 編集:

Infactは、私は少し自分自身に反対し、cletusに同意します。可能な限り有効にしてください(特定の種類のクレジットカード(IMHO)の詳細を確認することなく)。また、この検証はJavaScriptで行う必要があることは言うまでもありませんが、速やかに、サーバー上で、二重チェック(およびJavaScript無効なユーザー向け)を行う必要があります。

- 前の応答:

気にしないでください。実際に支払いを試みたときにプロバイダに確認させるだけです。あなた自身でそれを検証しようとする正当な理由はありません。あなたは本当にそれが好きなら、あなたはthisを使うことができます。

+6

もっと同意できませんでした。支払いゲートウェイには時間がかかります。あなたはそれを使用しようとする前に、それが有効であることを確認するために可能な限りすべてを行うべきです。 – cletus

+1

cletus:Luhnシステムを使用して簡潔なチェックを行い、送信する前に必要なデータがすべて送信されていることを確認してください。 –

1

私はあなたがLuhn Algorithmを探していると思います。これは、さまざまな識別番号を検証するために使用される単純なチェックサム式です。

0

これは、事前確認がどれだけ正確であるかによって異なります。できること全てを検証するには、カードの最後の桁を計算し、入力したものと比較する必要があります。これはRegExでは実行できません。

アルゴリズムおよびその他の詳細については、this linkを参照してください。これには、検証可能な共通番号プレフィックスのリストもあります。

13

常連式では、このリンクを参照してくださいFinding or Verifying Credit Card Numbers

  • ビザ:^ 4 [0-9] {12}(:?[0-9] {3})?$すべてのビザカード番号で始まります4.新しいカードは16桁です。^05 [1-5] [0-9] {14} $すべてのマスターカード番号は、51から55までの数字で始まります。すべて16桁です。
  • American Express:^ 3 [47] [0-9] {13} $ American Expressのカード番号は、34または37から始まり15桁です。
  • ダイナースクラブ:^ 3(?:0 [0-5] | [68] [0-9])[0-9] {11} $ 300から305,36または38から始まる$。すべて14桁です。 5で始まり16桁のDiners Clubカードがあります。これらはDiners ClubとMasterCardの合弁事業であり、MasterCardのように処理する必要があります。
  • Discover:^ 6(?:011 | 5 [0-9] {2})Discoverカード番号は6011または65で始まります。すべて16桁です。
  • JCB:^(?:2131 | 1800 | 35 \ d {3})\ d {11} $ JCBカードは2131または1800で始まり、15桁です。 35で始まるJCBカードは16桁です。

Bye。

+1

ディスカバーカードにいくつかの新しい範囲が追加されました。ディスカバーカードの最新の正規表現 '^ 6(?:0110 [0-9] | 011 [2-4] [0-9] | 01174 | 0117 [7-9 ] | 0118 [6-9] | 0119 [0-9] | 4 [4-9] [0-9] {5 [0-9] {4})[0-9] {10} $ ' – realgt

+0

中国連合払いはどうですか? –

関連する問題