typescript 如何在Angular中创建验证模式以检查输入是否介于两个数字(0-130)之间

fcipmucu  于 2022-12-05  发布在  TypeScript
关注(0)|答案(2)|浏览(77)

我有一个表单,我想在其中一个输入框中添加一个模式验证器,以便只允许0到130之间的数字。
我是新的编码,我不知道我在做什么。我希望输入框变红或有一些错误信息,如果另一个数字/字母写。

siv3szwd

siv3szwd1#

您可以使用模式验证:

'myField': ['', [Validators.pattern('^(?=(?:.{0}|.{130})$).*$')]]

或者您可以定义一个验证器函数,如下所示:

function between(x, min, max) {
      return x >= min && x <= max;
    }
    function ratingRange(min: number, max: number): 
    
        ValidatorFn {
          return (c: AbstractControl): { [key: string]: boolean } | null => {
            if (c.value !== null && (isNaN(c.value) || c.value < min || c.value > max) || !this.between(c.value , min , max)) {
              return { range: true };
            }
            return null;
          };
        }

然后:

'myField': [null, ratingRange(0, 130)],
umuewwlo

umuewwlo2#

您可以使用以下Angular 内置验证器:

field = new FormControl([minLength(0), maxLength(130]);

比正则表达式更快,另一种选择是像Chady BAGHDADI说的那样构建自己的验证器。

相关问题