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 }
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.... ......
Comments
Post a Comment