Skip to content
Switch branches/tags


Text input mask for React Native on iOS and Android.

NPM package version. MIT license.


React Native Text Input Mask iOS React Native Text Input Mask Android


npm install --save react-native-text-input-mask

# --- or ---

yarn add react-native-text-input-mask


For RN >= 0.60


  1. Configure pods (static or dynamic linking)
Static Library ( Podfile has no use_frameworks! ) Add following lines to your target in `Podfile`. Linking is not required in React Native 0.60 and above.
pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text', :modular_headers => true
Dynamic Framework ( Podfile has use_frameworks! ) Add following lines to your target in `Podfile` if it doesnt exist. Linking is not required in React Native 0.60 and above.
  1. Run pod install in the ios directory.


No need to do anything.

For RN < 0.60

WARNING! This is no longer officially supported, these instructions are out of date and may no longer work, we recommend upgrading to a newer version of React Native.


react-native link react-native-text-input-mask

iOS only: you have to drag and drop InputMask.framework to Embedded Binaries in General tab of Target

Manual installation


  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-text-input-mask and add RNTextInputMask.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNTextInputMask.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)


  1. Open up android/app/src/main/java/[...]/
  • Add import com.RNTextInputMask.RNTextInputMaskPackage; to the imports at the top of the file
  • Add new RNTextInputMaskPackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':react-native-text-input-mask'
    project(':react-native-text-input-mask').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-text-input-mask/android')
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':react-native-text-input-mask')


import TextInputMask from 'react-native-text-input-mask';
  onChangeText={(formatted, extracted) => {
    console.log(formatted) // +1 (123) 456-78-90
    console.log(extracted) // 1234567890
  mask={"+1 ([000]) [000] [00] [00]"}



Make sure to mock the following to jest.setup.js:

jest.mock('react-native-text-input-mask', () => ({
    default: jest.fn(),

More info

RedMadRobot Input Mask Android

RedMadRobot Input Mask IOS


This project uses semantic versioning: MAJOR.MINOR.PATCH. This means that releases within the same MAJOR version are always backwards compatible. For more info see

Local Development and testing

To use a local copy with your project, it's highly recommended to use