如何在角度6中创建自定义小写验证器?

时间:2018-10-17 08:02:45

标签: angular angular6

我想在我的密码字段上创建一些自定义验证器,以检查用户何时输入密码。这些验证器之一是小写验证器。

这是自定义验证程序我的代码,


 lowerCaseValidator(control: FormControl): { [key: string]: boolean } | null {
    if (control.value === '?=.*[a-z]') {
      return {'lowerCase': true};
    }
    console.log(control.value);
    return null;

}

但是它不起作用!

4 个答案:

答案 0 :(得分:1)

这是一个基于正则表达式的自定义验证器,请检查值是否继续以字母形式表示 小写

export function lowercaseValidator(c: FormControl) {
  let regex = /[a-z]/g
  if (regex.test(c.value)) {
    return null;
  } else {
    return { lowercase: true }
  }
}

stackblitz demo

答案 1 :(得分:0)

下面是使用至少一个大写,一个小写和一个数字强制使用8个字符的正则表达式。

  ^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$

答案 2 :(得分:0)

Angular已建立regex validator。您可以使用它

答案 3 :(得分:0)

如果要确保用户输入不同的大小写(包括大写和小写)作为密码,因此您假设只有小写字母是错误的,则可以这样做:

import { FormControl } from '@angular/forms';

export function lowerCaseValidator(control: FormControl): { [key: string]: 
boolean } | null {
    const value: string = control.value;

    if (value && value === value.toLowerCase()) {
        return {lowerCase: true};
    } else {
        return null;
    }
}

您可以在此处找到一个有效的示例:https://angular-ekb1wt.stackblitz.io

如果要确保用户仅输入小写字母,并且没有数字,符号或其他任何东西,那么您将需要RegEx,就像其他人已经提到的那样。