2017-10-16 5 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') 
    } 
    } 
関連する問題