क्या किसी के पास सबमिट करने से पहले क्रेडिट कार्ड के चेक अंकों को सत्यापित करने के लिए कोई लाइब्रेरी या जावास्क्रिप्ट स्निपेट है?क्रेडिट कार्ड की क्लाइंट-साइड सत्यापन
उत्तर
jQuery Validation Plugin में क्रेडिट कार्ड नंबरों को सत्यापित करने के लिए method है।
उनमें से ज्यादातर Luhn algorithm का उपयोग करें:
अन्य विशिष्ट स्क्रिप्ट रहे हैं।
यदि आप पहले से ही jQuery प्लगइन का उपयोग नहीं कर रहे हैं तो आप इस फ़ंक्शन का उपयोग कर सकते हैं। यह लुहान एल्गोरिदम पर आधारित है और रिक्त स्थान या डैश की सहिष्णु है इसलिए इसे अधिकांश डेटा प्रविष्टि मामलों के लिए काम करना चाहिए जिनकी आपको आवश्यकता होगी।
http://af-design.com/blog/2010/08/18/validating-credit-card-numbers/
शायद ओपी भी अब इस सूत्र का पालन नहीं करता है, लेकिन यह किसी और के लिए सहायक हो सकता है:
http://jquerycreditcardvalidator.com
यह कार्ड के प्रकार की जाँच करता है, इसकी लंबाई और आधुनिक के लिए चेक की पुष्टि करता है 10 लुहान एल्गोरिदम के साथ।
आप 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;
}
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
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
पैकेज के लेखक हूँ।
- 1. क्रेडिट कार्ड नंबर
- 2. क्रेडिट कार्ड सिस्टम कार्यान्वयन?
- 3. कनेक्ट क्रेडिट कार्ड रीडर
- 4. Jquery क्रेडिट कार्ड प्रकार
- 5. क्रेडिट कार्ड की जानकारी संग्रहित करना
- 6. क्रेडिट कार्ड - फाइल सेवाओं पर कार्ड?
- 7. क्रेडिट कार्ड प्रसंस्करण स्क्रिप्ट/बॉट्स
- 8. क्रेडिट कार्ड सत्यापन: क्या कार्ड नाम में गैर-ASCII वर्ण हो सकते हैं?
- 9. क्रेडिट कार्ड की जानकारी एकत्रित करना - भुगतान एकत्र नहीं करना
- 10. क्रेडिट कार्ड की पहली चार संख्या कितनी बार बदलती है?
- 11. MySQL डेटाबेस में क्रेडिट कार्ड की जानकारी सहेज रहा है?
- 12. क्रेडिट कार्ड की समाप्ति तिथियां किस समय क्षेत्र में हैं?
- 13. दूसरों की तरफ से ऑनलाइन क्रेडिट कार्ड भुगतान प्रसंस्करण
- 14. क्रेडिट कार्ड बैलेंस कैसे प्राप्त करें?
- 15. चुंबकीय पट्टी से पार्स क्रेडिट कार्ड इनपुट
- 16. ऐप में क्रेडिट कार्ड भुगतान लेना
- 17. मुफ्त क्रेडिट कार्ड जावा एपीआई उपलब्ध
- 18. क्रेडिट कार्ड के विवरण मान्य करें
- 19. पेपैल सैंडबॉक्स परीक्षण क्रेडिट कार्ड नंबर
- 20. क्रेडिट कार्ड के लिए उचित इनपुट टाइप
- 21. आईओएस - क्रेडिट कार्ड भुगतान को एकीकृत करना
- 22. क्रेडिट कार्ड लेनदेन में बैच का बिंदु
- 23. क्रेडिट कार्ड भुगतान कैसे प्राप्त करें?
- 24. क्रेडिट कार्ड नंबर संग्रहित करना - पीसीआई?
- 25. वाईआईएचपी पेपैल क्रेडिट कार्ड भुगतान एकीकरण
- 26. क्रेडिट कार्ड ट्रैक डेटा के लिए नियमित अभिव्यक्ति
- 27. फेसबुक क्रेडिट: क्रेडिट की संख्या प्राप्त करना
- 28. नेस्टेड (संग्रह) गुणों के लिए एमवीसी क्लाइंटसाइड सत्यापन
- 29. कस्टम सत्यापनकर्ता क्लाइंटसाइड
- 30. वेब एप्लिकेशन पर क्रेडिट कार्ड रीडर से कनेक्ट करें?
क्रेडिट कार्ड की जानकारी सत्यापित करने के लिए आप कभी भी जावास्क्रिप्ट का उपयोग क्यों करना चाहेंगे? –
@ gabriel1836, एक एल्गोरिदम है जो आपको बताता है कि क्रेडिट कार्ड अंक स्वीकार्य अंकों के सेट में हैं या नहीं। यह 100% पुष्टि नहीं है, लेकिन आप लगभग सभी यादृच्छिक गलतियों को रद्द करते हैं। – torial
इसे luhn-10 एल्गोरिदम – mdec