2017-10-16 55 views

回答

1

這是申請時的掩模angular2輸入掩碼的正確方法

HTML:

<input type="text" (keyup)="setTime($event)" [(value)]="timeStr" [textMask]="getMask()" /> 

打字稿:

設置關鍵時間

setTime(e):void{ 
    this.time = e.target.value; 
} 

定義相對於this.time

getMask():{ 
    mask: Array<string | RegExp>; 
    keepCharPositions: boolean; 
} { 
    return { 
    mask: [/[0-2]/, this.time && parseInt(this.time[0]) > 1 ? /[0-3]/ : /\d/, ':', /[0-5]/, /\d/], 
    keepCharPositions: true 
    }; 
} 
1

最後我解決我的問題這樣的面具。

HTML

<input [textMask]="{mask: mask}" [(ngModel)]="input_time" (ngModelChange)=changeRegex(input_time);type="text"/> 

打字稿

寫在角2成分此以下代碼。

public mask: Array<string | RegExp> = [/[0-2]/,/\d/, ':', /[0-5]/, /\d/], 

changeRegex(input_time){ 
    if(input_time.charAt(0) == '2'){ 
     this.mask[1]=new RegExp('[0-3]') 
    }else{ 
     this.mask[1]=new RegExp('\d') 
    } 
    }