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



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

你可以使用Caishen framework。

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

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)
    }

最新更新