2008-11-01 22 views
10

क्या किसी के पास सबमिट करने से पहले क्रेडिट कार्ड के चेक अंकों को सत्यापित करने के लिए कोई लाइब्रेरी या जावास्क्रिप्ट स्निपेट है?क्रेडिट कार्ड की क्लाइंट-साइड सत्यापन

+0

क्रेडिट कार्ड की जानकारी सत्यापित करने के लिए आप कभी भी जावास्क्रिप्ट का उपयोग क्यों करना चाहेंगे? –

+2

@ gabriel1836, एक एल्गोरिदम है जो आपको बताता है कि क्रेडिट कार्ड अंक स्वीकार्य अंकों के सेट में हैं या नहीं। यह 100% पुष्टि नहीं है, लेकिन आप लगभग सभी यादृच्छिक गलतियों को रद्द करते हैं। – torial

+0

इसे luhn-10 एल्गोरिदम – mdec

उत्तर

1

यदि आप पहले से ही jQuery प्लगइन का उपयोग नहीं कर रहे हैं तो आप इस फ़ंक्शन का उपयोग कर सकते हैं। यह लुहान एल्गोरिदम पर आधारित है और रिक्त स्थान या डैश की सहिष्णु है इसलिए इसे अधिकांश डेटा प्रविष्टि मामलों के लिए काम करना चाहिए जिनकी आपको आवश्यकता होगी।

http://af-design.com/blog/2010/08/18/validating-credit-card-numbers/

10

शायद ओपी भी अब इस सूत्र का पालन नहीं करता है, लेकिन यह किसी और के लिए सहायक हो सकता है:

http://jquerycreditcardvalidator.com

यह कार्ड के प्रकार की जाँच करता है, इसकी लंबाई और आधुनिक के लिए चेक की पुष्टि करता है 10 लुहान एल्गोरिदम के साथ।

7

आप Luhn algorithm साथ 16 अंक कार्ड नंबर मान्य करने के लिए इस स्निपेट का उपयोग कर सकते हैं:

function validateCardNumber(number) { 
    var regex = new RegExp("^[0-9]{16}$"); 
    if (!regex.test(number)) 
     return false; 

    return luhnCheck(number); 
} 

function luhnCheck(val) { 
    var sum = 0; 
    for (var i = 0; i < val.length; i++) { 
     var intVal = parseInt(val.substr(i, 1)); 
     if (i % 2 == 0) { 
      intVal *= 2; 
      if (intVal > 9) { 
       intVal = 1 + (intVal % 10); 
      } 
     } 
     sum += intVal; 
    } 
    return (sum % 10) == 0; 
} 
1

Luhn formula क्रेडिट कार्ड सत्यापन में सबसे लोकप्रिय एल्गोरिथ्म है। और algorithm शब्द से इतना डर ​​मत बनो कि आप एक पुस्तकालय की तलाश में हैं। यह समझने के लिए अविश्वसनीय रूप से आसान है। विकिपीडिया वर्णन से, इस एल्गोरिथ्म 3 चरणों में विभाजित किया जा सकता है:

  • सबसे दायीं ओर अंकों, जो जांच अंकों छोड़ दिया, बढ़ रहा है से, हर दूसरे अंकों की दोहरी मूल्य; यदि इस का उत्पाद दोगुना संचालन 9 से अधिक है (उदाहरण के लिए, 8 × 2 = 16), तो उत्पादों के अंकों (उदा।, 16: 1 + 6 = 7, 18: 1 + 8 = 9) योग करें।
  • सभी अंकों का योग लें।
  • यदि कुल मॉड्यूलो 10 0 के बराबर है (यदि कुल शून्य में समाप्त होता है) तो संख्या Luhn सूत्र के अनुसार मान्य है; अन्यथा यह मान्य नहीं है।

यहां मेरा कामकाजी मसौदा है।

function luhn(anum){ 
    anum = anum+''; 
    var sum = 0, 
     max = anum.length - 1; 
    //From the rightmost digit, which is the check digit, moving left 
    for(var j=max;j>=0;j--){ 
     var digit = parseInt(anum[j]); 
     //Take the sum of all the digits 
     if((max - j) & 1){ 
      //double the value of every second digit 
      var add = digit * 2; 
      //if the product of this doubling operation is greater than 9 , 
      //then sum the digits of the products 
      sum += add < 10 ? add : 1 + add % 10; 
     }else{ 
      sum += digit; 
     } 
    } 
    //If the total modulo 10 is equal to 0 (if the total ends in zero) 
    //then the number is valid according to the Luhn formula;else it is not valid. 
    return sum % 10 === 0; 
} 

luhn(79927398713) -> true 
3

Luhn एल्गोरिथ्म (भी Luhn formula के रूप में जाना जाता है) पहचान संख्या (जैसे क्रेडिट कार्ड नंबर, आईएमईआई) की एक किस्म को मान्य करने के लिए उपयोगी है।

मैं एल्गोरिथ्म के विवरण को छोड़ देते हैं, क्योंकि यह पहले से ही दूसरों के द्वारा उजागर किया गया है, लेकिन यदि आप जरूरत सबसे तेजी से Javascript क्रियान्वयन, आप इसे here देख सकते हैं।

बस रखो ...

function luhn(array) { 
    return function (number) { 
    let len = number ? number.length : 0, 
     bit = 1, 
     sum = 0; 

    while (len--) { 
     sum += !(bit ^= 1) ? parseInt(number[len], 10) : array[number[len]]; 
    } 
    return sum % 10 === 0 && sum > 0; 
    }; 
}([0, 2, 4, 6, 8, 1, 3, 5, 7, 9]); 

ध्यान दें कि स्रोत से जुड़ा हुआ में ES6 भाषा (यह भी जावास्क्रिप्ट 2015 तक जाना जाता है) है, लेकिन में transpiled है ES5 (index.js देखें) और यह पूरी तरह से इकाई है का परीक्षण किया। दोनों ब्राउज़रों और/या Node.js में

इसके अलावा यह प्रयोग करने योग्य है।

बेंचमार्क और अन्य कार्यान्वयन jsperf पर अपने उच्च प्रदर्शन को सत्यापित करने के लिए हैं।

अब, यदि आप बस इसका उपयोग करना चाहते हैं तो इसे repository से कोड प्राप्त करें।

अन्यथा bower के माध्यम से इसे स्थापित ...

bower install luhn-alg 

या npm के माध्यम से ...

npm install luhn-alg 

अस्वीकरण: मैं luhn-alg पैकेज के लेखक हूँ।

संबंधित मुद्दे