Chuyển đến nội dung chính

javascript function kiểm tra mã thẻ tín dụng hợp lệ - validate a valid credit card number

function IsValidCreditCard(ccNumb) {



    ccNumb = ccNumb.ReplaceAll('-', ''); // strip hyphen

    ccNumb = ccNumb.ReplaceAll(' ', '');

    var valid = "0123456789";   // Valid digits in a credit card number

    var len = ccNumb.length;  // The length of the submitted cc number

    var iCCN = parseInt(ccNumb);  // integer of ccNumb

    var sCCN = ccNumb.toString();  // string of ccNumb

    sCCN = sCCN.replace(/^\s+|\s+$/g, '');  // strip spaces

    var iTotal = 0;  // integer total set at zero

    var bNum = true;  // by default assume it is a number

    var bResult = false;  // by default assume it is NOT a valid cc

    var temp;  // temp variable for parsing string

    var calc;  // used for calculation of each digit



    // Determine if the ccNumb is in fact all numbers

    for (var j = 0; j < len; j++) {

        temp = "" + sCCN.substring(j, j + 1);

        if (valid.indexOf(temp) == "-1") { bNum = false; }

    }



    // if it is NOT a number, you can either alert to the fact, or just pass a failure

    if (!bNum) {

        /*alert("Not a Number");*/

        bResult = false;

    }



    // Determine if it is the proper length 

    if ((len == 0) && (bResult)) {  // nothing, field is blank AND passed above # check

        bResult = false;

    } else {  // ccNumb is a number and the proper length - let's see if it is a valid card number

        if (len >= 15) {  // 15 or 16 for Amex or V/MC

            for (var i = len; i > 0; i--) {  // LOOP throught the digits of the card

                calc = parseInt(iCCN) % 10;  // right most digit

                calc = parseInt(calc);  // assure it is an integer

                iTotal += calc;  // running total of the card number as we loop - Do Nothing to first digit

                i--;  // decrement the count - move to the next digit in the card

                iCCN = iCCN / 10;                               // subtracts right most digit from ccNumb

                calc = parseInt(iCCN) % 10;    // NEXT right most digit

                calc = calc * 2;                                 // multiply the digit by two

                // Instead of some screwy method of converting 16 to a string and then parsing 1 and 6 and then adding them to make 7,

                // I use a simple switch statement to change the value of calc2 to 7 if 16 is the multiple.

                switch (calc) {

                    case 10: calc = 1; break;       //5*2=10 & 1+0 = 1

                    case 12: calc = 3; break;       //6*2=12 & 1+2 = 3

                    case 14: calc = 5; break;       //7*2=14 & 1+4 = 5

                    case 16: calc = 7; break;       //8*2=16 & 1+6 = 7

                    case 18: calc = 9; break;       //9*2=18 & 1+8 = 9

                    default: calc = calc;           //4*2= 8 &   8 = 8  -same for all lower numbers

                }

                iCCN = iCCN / 10;  // subtracts right most digit from ccNum

                iTotal += calc;  // running total of the card number as we loop

            }  // END OF LOOP

            if ((iTotal % 10) == 0) {  // check to see if the sum Mod 10 is zero

                bResult = true;  // This IS (or could be) a valid credit card number.

            } else {

                bResult = false;  // This could NOT be a valid credit card number

            }

        }

    }

    return bResult; // Return the results

}

Nhận xét

Bài đăng phổ biến từ blog này

Ứng dụng tách file Contacts (vCard, *.vcf)

Trong itunes, khi backup dữ liệu Contacts, itunes sẽ lưu các Contacts dưới dạng 1 file vCard (*.vcf) duy nhất. Nếu cần import những Contacts này vào Windows Address Book (Wab) thì bạn cần phải tách file  vCard trên thành nhiều file vCard. Mỗi file vCard dành cho một contact. Phần mềm nhỏ dưới đây sẽ giúp bạn làm việc này: Download phần mềm tại đây:  Tool Tách file vCard Download source code tại đây:  Source Code Hope this help!

Đồng Nai Lên Kế Hoạch Đấu Giá Đất Khu Vực Núi Chứa Chan Phát Triển Du Lịch

Đồng Nai đã chính thức đưa khu đất hơn 107 ha tại núi Chứa Chan vào danh sách đấu giá trong năm 2025 , với mục tiêu thu hút đầu tư phát triển Khu du lịch núi Chứa Chan . Đây là một trong những dự án trọng điểm của tỉnh nhằm phát triển du lịch sinh thái và tâm linh tại khu vực này. Núi Chứa Chan Kế Hoạch Đấu Giá Và Phát Triển Hạ Tầng Theo kế hoạch của UBND tỉnh Đồng Nai , trong năm 2025, tỉnh dự kiến đấu giá 37 khu đất với tổng số tiền thu về gần 21.000 tỷ đồng . Trong đó, khu đất tại núi Chứa Chan (huyện Xuân Lộc) có diện tích 107 ha , được định giá 1.348 tỷ đồng . Lộ trình triển khai đấu giá khu đất này bao gồm: Tháng 7/2025: Hoàn thành các bước thu hồi đất, giải phóng mặt bằng, điều chỉnh quy hoạch. Tháng 9/2025: Xác định, thẩm định và phê duyệt giá khởi điểm. Tháng 10-12/2025: Ban hành quyết định đấu giá, lựa chọn đơn vị tổ chức và tổ chức phiên đấu giá. Bên cạnh đó, tỉnh Đồng Nai cũng đang thực hiện điều chỉnh Quy hoạch tổng thể bảo quản, tu bổ và phát triển di tích ...

Tập đoàn VinGroup khởi công dự án đô thị Vinhomes Tân Cảng

Sáng nay 26/7/2014, tập đoàn VinGroup đã tổ chức lễ khởi công dự án Vinhomes Tân Cảng. Dự án nằm trong khu phức hợp với diện tích gần 43 héc ta toạ lạc tại cảng Tân Cảng, quận Bình Thạnh, Tp.HCM. Đây là khu đô thị phức hợp đồng bộ đầu tiên của tập đoàn VinGroup tại phía Nam sau những thành công của các dự án phía Bắc. Tới tham dự buổi lễ có đại diện lãnh đạo Thành phố HCM, quân chủng Hải Quân, Tổng Công ty Tân Cảng, tập đoàn VinGroup, chức sắc tôn giáo Thành phố, đại diện UBND quận Bình Thạnh cùng nhiều đơn vị phân phối tiếp thị cho dự án. Phát biểu tại buổi lễ, ông Tất Thành Cang, phó chủ tịch UBND TP.HCM cho biết, Tân Cảng Sài Gòn chiếm một vị trí hết sức quan trọng về an ninh quốc phòng. Sau khi di dời qua cảng Cát Lái, vị trí hiện tại tổng công ty Tân Cảng Sài Gòn đã tìm được đối tác “xứng tầm” là tập đoàn VinGroup triển khai xây dựng khu đô thị tầm cỡ, tạo vị thế cho đầu tàu phát triển kinh tế của cả nước. Ông Tất Thành Cang cũng cho biết, UBND Thành phố sẽ tạo mọi điều kiện tố...