💳 💰 💻
CCValidator
CCValidator(我们对这个独特的名字感到非常自豪
- 使用 Luhn 算法 验证卡片号码,
- 在用户提供完整的卡号之前检测信用卡类型(这样,您可以在用户只输入了16位数字之前就告诉用户您不支持该卡,而不会让他在输完所有数字后才感到沮丧)。
与其他现有的验证库不同,这个库不使用正则表达式。它受到了 CreditCardJS 的启发,其目的是提供一个清晰的代码,这个代码不需要了解正则表达式--每个人都应该能够轻松地读取和修改验证代码。
此外,能够从只有第一位数字中检测可能的卡类型,让您可以提前失败。
示例
此 pod 不包含示例应用程序,但 测试 应该显示了如何正确使用它。
要运行示例项目,请克隆仓库,然后从 Example 目录中首先运行 pod install
。
使用方法
从前缀获取类型
要从卡前缀获取类型,请传递您拥有的信用卡输入(可以是1个字符的字符串)。验证器将将其与它所知的所有类型进行比较,并返回识别的类型,或。NotRecognized
。
Obj-C
NSString *numberAsString = textField.text;
CreditCardType creditCardType = [CCValidator typeCheckingPrefixOnlyWithCreditCardNumber:cardNumber];
//check if type is e.g. CreditCardTypeVisa, CreditCardTypeMasterCard or CreditCardTypeNotRecognized
Swift
let numberAsString = textField.text
let recognizedType = CCValidator.typeCheckingPrefixOnly(creditCardNumber: numberAsString)
//check if type is e.g. .Visa, .MasterCard or .NotRecognized
验证长度、类型和正确性
您还可以验证长度和类型——例如,如果验证器识别为MasterCard,则不会验证长度不同的信用卡。对于Visa,将允许13、16和19位等等。
此外,它还会使用Luhn算法验证卡号——这样,您只能将看起来正确的卡号传递给您的支付处理器。
Obj-C
NSString *numberAsString = textField.text;
BOOL isFullCardDataOK = [CCValidator validateWithCreditCardNumber:numberAsString];
Swift
let numberAsString = textField.text
let isFullCardDataOK = CCValidator.validate(creditCardNumber: numberAsString)
要求
此Pod无需任何额外的依赖。
安装
CCValidator可通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中:
pod "CCValidator"
作者
Mariusz Wisniewski,Digital Forms
许可证
CCValidator 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。
版本历史
- 1.2.0 - 2020/04/03
- 对 Swift 5 进行更新(感谢 @maetschl!)
- 1.1.0 - 2019/09/27
- 对 Swift 4.2 进行更新(感谢 @jessearmand!)
- 1.0.2 - 2017/03/24
- 修复 iPhone 4S 问题(感谢 @jessearmand!)
- 1.0.1 - 2017/02/22
- 更新了文档
- 1.0.0 - 2017/02/21
- 库的初始版本