角度输入时间掩码

les*_*oes 1 angular-material2 angular

我有反应形式的这个输入(材料 2)。而且我知道在此输入上放置时间掩码 (hh:mm) 的更好方法。或者我怎样才能为此建立一个指令?

<div class="col-md-2 hours">
  <label for="floating-placeholder">Horário</label>
  <div>
    <input class="col-md-5 end" matInput placeholder="hh:mm" value="" name="end" minlength="4" maxlength="4" formControlName="start">
    às
    <input class="col-md-5 end" matInput placeholder="hh:mm" value=""  name="end" formControlName="end">
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

les*_*oes 7

这就是我解决这个问题的方法:

首先我安装这个模块:https : //www.npmjs.com/package/angular2-text-mask2

然后,我在组件 ts 中创建一个自定义掩码

public maskTime = [/[1-9]/, /\d/,':',/\d/, /\d/]
Run Code Online (Sandbox Code Playgroud)

最后,我把指令放在输入中

  <div class="col-md-2 hours">
    <label for="floating-placeholder">Horário</label>
    <div>
      <input type="text" [textMask]="{mask: maskTime, guide: false}" class="col-md-5 end" matInput placeholder="hh:mm" value="" name="end"  formControlName="start">às
      <input type="text" [textMask]="{mask: maskTime, guide: false}" class="col-md-5 end" matInput placeholder="hh:mm" value=""  name="end" formControlName="end">
    </div>
  </div>
Run Code Online (Sandbox Code Playgroud)

  • `[/[0-2]/, /\d/,':',/[0-5]/, /\d/]` 更安全,但也要有验证 (2认同)

Kim*_*ern 6

对时间值使用标准 HTML 输入类型。

<input class="col-md-5 end" matInput name="end" formControlName="start" type="time">
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅MDN 文档

  • 对于任何关注这一问题的人来说,时间仍然没有得到普遍支持。截至目前,Safari 仍然不支持时间类型。 (3认同)