角度 UI 掩码验证

Angular UI Mask Validation

本文关键字:验证 掩码 UI 角度      更新时间:2023-09-26

Im使用AngularUI Utils试图屏蔽日期输入。但是,当我尝试针对字段测试正则表达式以验证日期格式时,它每次都返回 false。

.HTML

<div class="row form-group">
  <div class="col-xs-12">
    <label>Date of Birth</label>
    <input class="form-control" ng-model="vm.dateOfBirth" ui-mask="99/99/9999" placeholder="MM/DD/YYYY" />
  </div>
</div>

AngularJS

var dateRegex = /^'d{2}'/'d{2}'/'d{4}$/;
var vm = this;
vm.dateOfBirth = "";
vm.validateInput = function () {
    return dateRegex.test(vm.dateOfBirth);
}

还有其他方法可以验证此输入吗?

我找到了一个解决方案,但似乎有点笨拙。显然,如果模型与掩码正则表达式不匹配,则变量将undefined或空字符串(当您通过掩码退格时)。

vm.validateInput = function () {
    return typeof vm.dateOfBirth !== "undefined" && vm.dateOfBirth != "";
}

这似乎可以解决问题,但它仅适用于 AnguarUI 掩码接受的非常简单的正则表达式。我很想知道是否有另一种方法可以在掩码顶部应用额外的正则表达式验证,就像我最初尝试的那样。