2016-04-24 4 views
-5

Я уже давно застрял в этом, и мне было интересно, как лучше форматировать текстовое поле для формата кредитной карты?Swift - Форматировать текстовое поле для кредитной карты

+0

это вопрос мнения на основе ... нет общего ответа, возможно ... также просьба предоставить больше коды и того, что вы судимая до сих пор и что не работает, или нет того, что вы ожидаете от него. stackoverflow - это не кодирование. –

+1

в следующий раз, когда вы чувствуете, что застряли в проблеме, используйте google, http://stackoverflow.com/questions/12083605/formatting-a-uitextfield-for-credit-card-input-like-xxxx-xxxx-xxxx- хххх –

ответ

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) 
    } 
Смежные вопросы