Vue.js v-mask将电话号码屏蔽为巴西格式

Vue.js v-mask将电话号码屏蔽为巴西格式,vue.js,vue-component,Vue.js,Vue Component,我正在使用vue+v-mask为电话字段实现巴西格式(99)9999-9999或(99)99999-9999的掩码。我进行了研究,但没有发现100%适合我的东西,所以我做了自己的实现,但有点难看。。。我无法删除已经键入的块。。。如果有人有一个更优雅的解决方案,可以给我一点帮助,我很感激 <v-text-field label="Celular*" v-model="clienteData.celular" :error-mes

我正在使用vue+v-mask为电话字段实现巴西格式(99)9999-9999或(99)99999-9999的掩码。我进行了研究,但没有发现100%适合我的东西,所以我做了自己的实现,但有点难看。。。我无法删除已经键入的块。。。如果有人有一个更优雅的解决方案,可以给我一点帮助,我很感激

<v-text-field
    label="Celular*"
    v-model="clienteData.celular"
    :error-messages="errors.celular"
    v-mask="phone_mask"
></v-text-field>

将数据传递到v-mask

<script>
export function phoneMask(value) {
     const ddd = [
  /[0-9]/, /[0-9]/
];

if(value.length < 14){
    return  [ '(',... ddd, ')', /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, '-',/[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/ ] 
}
return  value.length > 2 ?[ '(',... ddd, ')', /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, '-',/[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/ ] : ['(', ...ddd, ')'] 

  }

export default {
        data: () => ({ 
            phone_mask : phoneMask
        }),
}

导出函数phoneMask(值){
常数ddd=[
/[0-9]/, /[0-9]/
];
如果(值。长度<14){
返回['(',…ddd'),/[0-9]/,/[0-9]/,/[0-9]/,/[0-9]/,'-',/[0-9]/,/[0-9]/,/[0-9]/]
}
返回值.length>2?['(',…ddd'),/[0-9]/,/[0-9]/,/[0-9]/,/[0-9]/,/[0-9]/,'-',/[0-9]/,/[0-9]/,/[0-9]/:['(',…ddd')]
}
导出默认值{
数据:()=>({
电话掩码:电话掩码
}),
}

请翻译或发到。对不起,我以为是用葡萄牙语版本发的