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!

Khắc phục tình trạng ổ đĩa không hiển thị file và folder vì bị nhiễm virus

Có một số loại virus máy tính (mình chưa xác định loại nào) làm các file và folder bị set là hidden. Mặc dù các trình quét virus đã remove virus này tuy nhiên, trạng thái của các file, folder bị nhiễm vẫn là hidden. Thậm chí, trong folder option, ta đã set cho hiển thị hidden và system files. Sau 30 phút tìm hiểu, sau đây là cách khắc phục. Cũng khá đơn giản. Chia sẻ cùng mọi người. đây là tình trạng ổ đĩa USB của mình. Windows explorer thông báo ổ đĩa vẫn có data trong đó. Tuy nhiên, khi open ổ đĩa này thì không có file hay folder gì: Kiểm tra bằng command line cũng có kết quả tương tự, empty! Tuy nhiên, khi mình zip ổ đĩa này lại và mở bằng windows explorer thì có tồn tại files và folders ở trạng thái "hidden" và "system": Nhưng khi cấu hình folder option để cho phép hiển thị các files hidden thì không hiệu quả: Chà chà, đau đầu rồi..... ... ... 30 phút googling.... ......

Phát Triển Bất Động Sản Khu Công Nghiệp Gắn Liền Với Nhà Ở Xã Hội – Giải Pháp Hút Vốn FDI Và Ổn Định Lao Động

 Sự kết hợp giữa phát triển bất động sản khu công nghiệp và phát triển nhà ở xã hội đang trở thành một trong những chiến lược quan trọng để thu hút dòng vốn đầu tư trực tiếp nước ngoài (FDI) vào Việt Nam. 1. Hạ tầng khu công nghiệp – Yếu tố quyết định thu hút FDI Việt Nam đang là một trong những điểm đến hấp dẫn của các nhà đầu tư nước ngoài, đặc biệt trong lĩnh vực công nghiệp và sản xuất. Tuy nhiên, một trong những điều kiện quan trọng để các doanh nghiệp FDI quyết định rót vốn chính là hạ tầng khu công nghiệp và chất lượng nguồn lao động . Trong đó, nhà ở cho công nhân là yếu tố thiết yếu, đảm bảo đời sống ổn định cho người lao động và giúp doanh nghiệp duy trì lực lượng sản xuất lâu dài . Nhiều tập đoàn quốc tế khi đầu tư vào Việt Nam không chỉ quan tâm đến hạ tầng sản xuất, giao thông , mà còn đặt yêu cầu về các tiện ích xã hội, bao gồm nhà ở cho công nhân, trường học, bệnh viện . Nếu vấn đề nhà ở không được giải quyết, lao động có thể chuyển dịch sang các khu vực khác,...