/** * 信用卡有效性校验 * @param creditCardNo * @private */let _checkCardNoValidity = (creditCardNo) => { let cardNoArray = new Array(); for (let i = creditCardNo.length - 1; i >= 0; i--) { cardNoArray.push(creditCardNo.substr(i, 1)); } let oddSum = 0; let evenSum = 0; for (let i = 0; i < cardNoArray.length; i++) { if ((i + 1) % 2 == 1) { // 奇数位 oddSum += parseInt(cardNoArray[i]); } else { // 偶数位 先将乘以2,大于等于两位数则减去9,之后求和 let tmp = parseInt(cardNoArray[i] * 2) >= 10 ? (parseInt(cardNoArray[i] * 2) - 9) : parseInt(cardNoArray[i] * 2); evenSum += tmp; } } // 结果可以与10 整除就代表可以 (result%10) let result = parseInt(oddSum) + parseInt(evenSum); let mark = result % 10 == 0 ? true : false; return mark;};
转载于:https://my.oschina.net/shitouscalpel/blog/1586350