Input Mask

Bootstrap 5 Input Mask plugin

The Input Mask is a custom directive which allows to set a predefined format of forms.

Responsive Input Mask directive for the latest Bootstrap 5. Set a predefined format of forms. Phone number, special characters, clear incomplete & other examples.

Note: Read the API tab to find all available options and advanced customization

Basic example

Input Mask comes with three predefined masks directives:

  • a - Alpha characters (defaut: A-Z,a-z)
  • 9 - Numeric characters (0-9)
  • * - Alphanumeric characters (A-Z,a-z,0-9)

To initialize Input Mask on element add data-mdb-input-mask attribute with mask format to input.

          <div class="form-outline">
            <input type="text" id="basic-example" class="form-control" data-mdb-input-mask="99-999-99"/>
            <label class="form-label" for="basic-example">Basic example</label>

Clear incomplete

By default, Input Mask will clear incomplete input value on blur. Turn this behavior off with data-mdb-clear-incomplete="false".

          <div class="form-outline">
            <input type="text" id="clear-incomplete" class="form-control" data-mdb-input-mask="99-999-99" data-mdb-clear-incomplete="false"/>
            <label class="form-label" for="clear-incomplete">Clear incomplete</label>

Custom mask

Define custom mask with data-mdb-custom-mask for mask symbol and data-mdb-custom-validator with custom mask regex pattern. Example below will only allow abc letters to be typed for p mask.

          <div class="form-outline">
            <input type="text" id="custom-mask" class="form-control" data-mdb-input-mask="999ppp999" data-mdb-custom-mask="p" data-mdb-custom-validator="[abc]"/>
            <label class="form-label" for="custom-mask">Custom mask</label>

You can also set more than one mask by passing multiple characters separated by comma to data-mdb-custom-mask, and their coresponding validators separated by comma to data-mdb-custom-validator

          <div class="form-outline">
            <input type="text" id="custom-masks" class="form-control" data-mdb-input-mask="pppbbbccc" data-mdb-custom-mask="p,b,c" data-mdb-custom-validator="[abc],[1-2],[^a-c]"/>
            <label class="form-label" for="custom-masks">Custom mask</label>

Special characters

Input Mask allows any non alphanumeric character to be used inside the data-mdb-input-mask. Those characters will be hardcoded into the input during typing

          <div class="form-outline">
            <input type="text" id="phone" class="form-control" data-mdb-input-mask="+48 999-999-999"/>
            <label class="form-label" for="phone">Phone number with country code</label>
          <div class="form-outline">
            <input type="text" id="book" class="form-control" data-mdb-input-mask="ISBN 0-99999-999-0"/>
            <label class="form-label" for="book">Book number</label>

Mask placeholder

Set placeholder for mask while typing with data-mdb-mask-placeholder="true". Default placeholder is an underscore sign _. Change it with data-mdb-char-placeholder. You can use single character or define placeholder for whole mask

          <div class="form-outline">
            <input type="text" id="defaultPlaceholder" class="form-control" data-mdb-input-mask="(99)-999-99" data-mdb-mask-placeholder="true"/>
            <label class="form-label" for="defaultPlaceholder">Default placeholder</label>
          <div class="form-outline">
            <input type="text" id="customPlaceholder" class="form-control" data-mdb-input-mask="99/99/9999 99:99" data-mdb-mask-placeholder="true" data-mdb-char-placeholder="dd/mm/yyyy hh:mm"/>
            <label class="form-label" for="customPlaceholder">Custom placeholder</label>

Input Mask - API


Input Mask comes with three predefined masks formats:

  • a - Alpha characters (defaut: A-Z,a-z)
  • 9 - Numeric characters (0-9)
  • * - Alphanumeric characters (A-Z,a-z,0-9)

To initialize Input Mask on element add data-mdb-input-mask attribute with mask format to input.

Via data attributes

        <input type="text" data-mdb-input-mask="aaa999***"/>

Via JavaScript

        const options = {
          inputMask: "aaa999***"
        const inputElement = document.getElementById('js-usage-example');
        const instance = new Inputmask(inputElement, options)

Via jQuery

Note: By default, MDB does not include jQuery and you have to add it to the project on your own.

        $(document).ready(() => { 


Options can be passed via data attributes, JavaScript, or jQuery. For data attributes, append the option name to data-mdb-, as in data-mdb-input-mask="aaa".

Name Type Default Description
inputMask String "" Defines Input Mask pattern to be added to input element
charPlaceholder String "_" Placeholder character for covered characters in mask. Visible while typing only when maskPlaceholder is set to true
maskPlaceholder Boolean false Sets charPlaceholder on or off
inputPlaceholder Boolean true Shows information about the mask pattern on inactive input
clearIncomplete Boolean true Clear incomplete input value on blur
customMask String "" Defines character to be used as custom mask. Allows multiple characters to be passed, separated by comma
customValidator String "" Regex pattern to match characters in mask. Allows multiple validators corespondiing to their masks to be passed, separated by comma.


Name Parameters Description Example
dispose Removes the Inputmask instance. instance.dispose()
getInstance element Static method which allows to get the Inputmask instance associated with a DOM element. Inputmask.getInstance(element)
        const inputElement = document.getElementById('inputmask-example');
        const instance = Inputmask.getInstance(inputElement);


Name Description
input.mdb.inputmask Emitted when Inputmask instance element receives new value. Returns value object inside event callback with input typed characters.
complete.mdb.inputmask Emitted when Inputmask instance element receives completed mask pattern value. Returns value object inside event callback with completed value.
          const inputElement = document.getElementById('inputmask-example');
          inputElement.addEventListener('complete.mdb.inputmask', () => {
            alert('Mask input completed!');


MDB UI KIT also works with module bundlers. Use the following code to import this component:

        import InputMask from 'mdb-input-mask';