版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ZY_FlyWay/article/details/95612473
// Converted to Swift 4 by Swiftify v4.2.40307 - https://objectivec2swift.com/
func checkBankCardNumber(_ cardNumber: String?) -> Bool {
var oddSum: Int = 0 // 奇数和
var evenSum: Int = 0 // 偶数和
var allSum: Int = 0 // 总和
// 循环加和
for i in 1...(cardNumber?.count ?? 0) {
let theNumber = (cardNumber as NSString?)?.substring(with: NSRange(location: (cardNumber?.count ?? 0) - i, length: 1))
var lastNumber = Int(truncating: theNumber ?? "") ?? 0
if i % 2 == 0 {
// 偶数位
lastNumber *= 2
if lastNumber > 9 {
lastNumber -= 9
}
evenSum += lastNumber
} else {
// 奇数位
oddSum += lastNumber
}
}
allSum = oddSum + evenSum
// 是否合法
if allSum % 10 == 0 {
return true
} else {
return false
}
}