我正在尝试使用' angular2-input-mask'输入24小时时间格式。我正在尝试使用以下掩码。有效24小时时间格式的正确掩码是什么。
this.mask = [/[0-2]/, /^([0-9]|2[0-3])/, ':', /[0-5]/, /[0-9]/];
答案 0 :(得分:3)
这是使用 angular2-input-mask
为小时应用蒙版的正确方法<强> 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 :(得分: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')
}
}