什么是24小时正则表达式' angular2-input-mask&#39 ;?

时间:2017-10-16 07:22:47

标签: angular typescript

我正在尝试使用' angular2-input-mask'输入24小时时间格式。我正在尝试使用以下掩码。有效24小时时间格式的正确掩码是什么。

 this.mask = [/[0-2]/, /^([0-9]|2[0-3])/, ':', /[0-5]/, /[0-9]/];

2 个答案:

答案 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')
    }
  }