Angular UI Mask验证

时间:2014-12-30 15:43:20

标签: javascript jquery regex angularjs

我使用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);
}

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

1 个答案:

答案 0 :(得分:4)

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

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

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