Skip to the content.

If you’ve ever tried to make an input field that automatically formats as you type, you’ll know it’s actually a pain in the 🍑. That’s right, a pain in the peach.

With this simple React component, you can create your own pattern using the format prop, start typing and witness the magic ✨

<Input format="## - ## - ##">

Formatted input

Quickstart

Install it:

npm install react-input-auto-format

Have fun:

import Input from 'react-input-auto-format';

function Foo () {
    return <Input format="## / ##" />;
}

The format prop accepts any pattern - it’s entirely up to you. Here’s some inspiration:

Style Pattern Result
Expiry date ## / ## 12 / 34
Sort code ## - ## - ## 12 - 34 - 56
Number plate #### ### LM68 XKC

Getting the raw value

To get the unformatted value, use the onValueChange prop.

function Foo () {
    handleValueChange(value) {
        console.log(value); // 123456
    }

    return <Input
        format="## - ## - ##"
        onValueChange={handleValueChange}
    />;
}

Everything else

All other props work the same as you would expect for a native input component. If you want the formatted value, use a standard onChange attribute and pull out event.target.value.