使用验证器使用OR条件执行验证

时间:2017-10-20 06:35:13

标签: angular

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

我们怎么做?

1 个答案:

答案 0 :(得分:0)

您可以使用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);
        }
    };
})();