AnyFormatKit: Simple text formatting in Swift

CI Status Version Carthage Compatible License Platform Swift

Text formatting framework written on Swift 5.0.

Features

Features
:performing_arts: Convert string into formatted string and vice versa
:bicyclist: Formatting text during typing
:hash: Set format using '#' characters like '### ##-###'

Example

To run the example project, clone the repo and run pod install from the Example directory first.

Phone number example

AnyFormatKitDemo: Simple text formatting in Swift

Currency example

AnyFormatKitCurrencyDemo: Currency formatting in Swift

Requirements

  • iOS 8.0+
  • Swift 4.0+
  • Xcode 9.0+

Migration Guides

Installation

CocoaPods

AnyFormatKit is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'AnyFormatKit'

Then, run the following command:

$ pod install

Usage

Import

import AnyFormatKit

Formatting with TextFormatter

let phoneFormatter = DefaultTextFormatter(textPattern: "### (###) ###-##-##")
phoneFormatter.format("+123456789012") // +12 (345) 678-90-12

let customFormatter = DefaultTextFormatter(textPattern: "###-###custom###-###")
customFormatter.format("111222333444") // 111-222custom333-444

You can also set your own symbol in the pattern

let cardFormatter = DefaultTextFormatter(textPattern: "XXXX XXXX XXXX XXXX", patternSymbol: "X")
cardFormatter.format("4444555566667777") // 4444 5555 6666 7777

For string with different length

let formatter = DefaultTextFormatter(textPattern: "## ###-##")
formatter.format("1234") // 12 34
formatter.format("123456789") // 12 345-67

Unformatting

let formatter = DefaultTextFormatter(textPattern: "## ###-##")
formatter.unformat("99 888-77") // 9988877

Formatting during typing

Code from example app

let formatter = DefaultTextInputFormatter(textPattern: "### (###) ###-##-##")

// inside of UITextFieldDelegate shouldChangeTextIn method
let result = formatter.formatInput(currentText: textView.text, range: range, replacementString: text)
textView.text = result.formattedText
textView.setCursorLocation(result.caretBeginOffset)

Author

luximetr, luximetr.notification@gmail.com

License

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

Anyformatkit

Simple text formatting in Swift

Anyformatkit Info

⭐ Stars 236
🔗 Source Code github.com
🕒 Last Update a year ago
🕒 Created 4 years ago
🐞 Open Issues 0
➗ Star-Issue Ratio Infinity
😎 Author luximetr