Swift - 格式化信用卡的文本字段

时间:2016-04-24 11:32:19

标签: ios swift textfield credit-card

我现在已经坚持了一段时间了,我想知道格式化信用卡类型格式的文本字段的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用Caishen框架。

使用此功能在每次编辑后更新文本字段的内容:

public func formattedCardNumber(cardNumberString: String) -> String {
        let regex: NSRegularExpression

        let cardType = cardTypeRegister.cardTypeForNumber(Number(rawValue: cardNumberString))
        do {
            let groups = cardType.numberGrouping
            var pattern = ""
            var first = true
            for group in groups {
                pattern += "(\\d{1,\(group)})"
                if !first {
                    pattern += "?"
                }
                first = false
            }
            regex = try NSRegularExpression(pattern: pattern, options: NSRegularExpressionOptions())
        } catch {
            fatalError("Error when creating regular expression: \(error)")
        }

        return NSArray(array: self.splitString(cardNumberString, withRegex: regex)).componentsJoinedByString(self.separator)
    }