angular - 在 ngx-mask 中掩码 angular8 的行为
我有一个组件,我需要根据用户输入的参数设置一个掩码,并且如果输入超过 11 位 CPF,那么该字段将使用 CNPJ 的掩码。以下是代码片段:我正在使用 ngx-mask;
<input type="text" class="form-control form-control-sm" formControlName="cpf_cnpj" [mask]="mask" (keyup)="cpfcnpjmask($event)">
cpfcnpjmask() {
const value = this.dadosBancariosForm.get('cpf_cnpj').value;
console.log(value, value.length,this.dadosBancariosForm)
if(value.length <= 14) {
this.mask = '00.000.000/0000-00'
}
else {
this.mask = '00.000.0000-00'
}
}
在这段代码中,它只采用第一次咀嚼,从不进行第二次。有人会有解决这个僵局的方法,或者有某种实现此目的的掩码。感激不尽。
答案#1
你的条件是相反的,将 if 块改为 else,并尝试使用 9s...
static MASCARA_CPF = "999.999.999-99";static MASCARA_CNPJ = "99.999.999/9999-99";答案#2
根据你的需求,我认为这是我能想到的方法。请尝试像这样更改条件,我觉得它会有效。
if(value.length > 11){
console.log('here');
this.mask = '00.000.000/0000-00';
}
else if(value.length == 11){
this.mask= '00.000.000/0000-00';
}
else if (value.length < 11){
this.mask= '00.000.0000-00';
}
