First, install it.
npm i vue-text-mask --save
Then, use it as follows:
<template>
<div>
<label>Phone Number</label>
<masked-input
type="text"
name="phone"
class="form-control"
v-model="phone"
:mask="['(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]"
:guide="false"
placeholderChar="#">
</masked-input>
</div>
</template>
<script>
import MaskedInput from 'vue-text-mask'
export default {
name: 'name',
components: {
MaskedInput
},
data () {
return {
phone: ''
}
}
}
</script>
You could alternatively define the component globally:
import Vue from 'vue'
import MaskedInput from 'vue-text-mask'
Vue.component('masked-input', MaskedInput);
<masked-input>
is essentially a wrapped <input>
element - so it supports all the regular input properties (type, placeholder, class, etc). It is compatible with v-model 2-way binding, and is reactive to changes to any of the text mask props.
For more information about the props
that you can pass to the component, see
the documentation here.
To see an example of the code running, follow these steps:
- Clone the repo,
git clone [email protected]:text-mask/text-mask.git
npm install
npm run vue:dev
- Open http://localhost:3000
We would love some contributions! Check out this document to get started.