フォーム入力を補助する「vue-text-mask」の使い方
by kabanoki
HTML
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vueTextMask.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/emailMask.js"></script>
<div id="app">
<div>
<label>携帯番号</label>
<masked-input
type="text"
name="phone"
class="form-control"
v-model="phone"
:mask="phoneMask"
:guide="false"
placeholderChar="#">
</masked-input>
</div>
<div>
<label>日付</label>
<masked-input
type="text"
name="day"
class="form-control"
v-model="day"
:mask="dayMask"
:guide="false"
placeholderChar="#">
</masked-input>
</div>
<div>
<label>email</label>
<masked-input
type="text"
name="email"
class="form-control"
v-model="email"
:mask="emailMask"
:guide="false"
placeholderChar="#">
</masked-input>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js"></script>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
}
li {
margin: 8px 0;
}
h2 {
font-weight: bold;
margin-bottom: 15px;
}
del {
color: rgba(0, 0, 0, 0.3);
}
Vue
const MaskedInput = window.vueTextMask.default;
const emailMask = window.emailMask.default;
let app = new Vue({
el: '#app',
components: {
MaskedInput,
emailMask
},
data: {
phone: '',
phoneMask: ['(', /[0-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/],
day: '',
dayMask: [/\d/, /\d/, /\d/, /\d/, '年', /[0-1]/, /\d/, '月', /[0-3]/, /\d/, '日'],
email:'',
emailMask: emailMask
}
});