Skip to content

TimGrell/PhoneNumberFormatter

 
 

Repository files navigation

Phone Number Formatter

Build Swift Carthage compatible

UITextField and NSFormatter subclasses for formatting phone numbers. Allow different formats for different countries(patterns). Caret positioning works excellent. Swift 4.
If you need ObjC support use - https://github.com/Serheo/SHSPhoneComponent/

Installation

Carthage

github "Serheo/PhoneNumberFormatter"

CocoaPods

pod "SwiftPhoneNumberFormatter"

Getting Started

Default Format

textField.config.defaultConfiguration = PhoneFormat(defaultPhoneFormat: "(###) ###-##-##")

All input strings will be parsed in that way. Example: +1 (123) 123-45-67

Image

Prefix Format

You can set prefix on all inputs:

textField.config.defaultConfiguration = PhoneFormat(defaultPhoneFormat: "(###) ###-##-##")
textField.prefix = "+7 "

Multiple Formats

textField.config.defaultConfiguration = PhoneFormat(defaultPhoneFormat: "##########")
textField.prefix = nil
let custom1 = PhoneFormat(phoneFormat: "+# (###) ###-##-##", regexp: "^7[0-689]\\d*$")
textField.config.add(format: custom1)

let custom2 = PhoneFormat(phoneFormat: "+### ###-##-##", regexp: "^380\\d*$")
textField.config.add(format: custom2)

Multiple Formats with prefix

textField.config.defaultConfiguration = PhoneFormat(defaultPhoneFormat: "### ### ###")
textField.prefix = "+7 "

let custom1 = PhoneFormat(phoneFormat: "(###) ###-##-##", regexp: "^1\\d*$")
textField.config.add(format: custom1)

let custom2 = PhoneFormat(phoneFormat: "(###) ###-###", regexp: "^2\\d*$")
textField.config.add(format: custom2)

Requirements

iOS 9+ Swift 4

License

PhoneNumberFormatter is available under the MIT license. See the LICENSE file for more info.

About

UITextField subclass for formatting phone numbers. Allow different formats for different countries(patterns).

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 95.0%
  • Ruby 2.5%
  • Objective-C 2.5%