【问题标题】:Perform validation with OR condition using validators使用验证器执行 OR 条件验证
【发布时间】:2017-10-20 06:35:12
【问题描述】:

我有一个输入字段,可以接受电子邮件地址或电话号码作为输入。如果用户输入电子邮件地址,则希望使用 validators.email 进行验证,如果用户输入电话号码,则希望使用仅接受诸如 validatiors.pattern(regularexpression) 之类的数字的模式进行验证。我使用了响应式表单验证。

我们该怎么做?

【问题讨论】:

  • 由于将不同类型合二为一并不常见,因此您应该创建自己的自定义验证器,它应该已经实现了该逻辑。

标签: angular


【解决方案1】:

您可以使用 ng-pattern

例子,

HTML

<input type="text" ng-model="..." ng-required="requireTel"
    ng-pattern="phoneNumPattern" />

脚本

$scope.phoneNumPattern = (function() {
    var regexp = /^\(?(\d{3})\)?[ .-]?(\d{3})[ .-]?(\d{4})$/;
    return {
        test: function(value) {
            if( $scope.requireTel === false ) {
                return true;
            }
            return regexp.test(value);
        }
    };
})();

【讨论】:

  • 谢谢,但我使用 angular 4 和反应形式的验证器。你能用 Angular 4 更新答案吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 2011-01-20
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
相关资源
最近更新 更多