Vue2中怎么实现用户输入的格式是我设置好的
时间: 2024-03-23 14:44:03 浏览: 44
Vue2中可以通过自定义指令来实现用户输入的格式是我们设置的格式。首先在Vue实例中定义一个自定义指令,然后在指令中使用正则表达式对输入进行格式化,最后将格式化后的值赋值给输入框的model。
举个例子,如果我们要将用户输入的电话号码格式化为xxx-xxxx-xxxx的形式,可以这样写:
```
Vue.directive('phone', {
bind: function (el, binding, vnode) {
el.addEventListener('input', function (e) {
var input = e.target.value.replace(/[^0-9]/g, '').substring(0, 10);
var formattedInput = '';
if (input.length > 6) {
formattedInput += input.substr(0, 3) + '-';
input = input.substr(3);
}
if (input.length > 3) {
formattedInput += input.substr(0, 4) + '-';
input = input.substr(4);
}
formattedInput += input;
e.target.value = formattedInput;
vnode.componentInstance.$emit('input', formattedInput);
});
}
})
```
然后我们在模板中使用v-phone指令来调用这个自定义指令,如下:
```
<template>
<div>
<input v-model="phone" v-phone>
</div>
</template>
```
这样用户输入的电话号码就会按照我们设置的格式进行显示。
阅读全文