嗨,我正在学习Angular 8表单验证器,我可以知道如何使用Angular验证器来强制用户满足所有这些要求吗?-至少1个A-Z -至少1个a-z -至少10-9-至少1个特殊字符
这是我尝试过的代码,但不能正常工作,不知道为什么。
FormGroupCode:
newPassword: ['', [Validators.required, Validators.minLength(8), Validators.maxLength(50)], Validators.pattern((/?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&].{8,}/)],HtmlCode:
<input type="password" class="form-control" id="newPassword" name="newPassword"
placeholder="{{'global.form.newpassword.placeholder' | translate}}"
formControlName="newPassword">
<small class="form-text text-danger"
*ngIf="passwordForm.get('newPassword')?.errors?.pattern">
Must have alphanumeric and specia character.
</small>对不起,这可能是一个愚蠢的问题,但真的不知道如何解决。感谢您的时间和努力
发布于 2020-01-13 18:03:17
尝尝这个
Validators.pattern(^(?=.*?[a-zA-Z])(?=.*?[0-9])(?=.*?[@#%$])[a-zA-Z0-9@#%$]{8,16}$)发布于 2020-01-13 18:01:01
看起来你没有使用正确的签名。FormGroup是许多FormControl的对象。在这里,FormControl应该有值和验证器作为它的第一个和第二个参数。
myFormGroup = {
newPassword: new FormControl(
'',
[
Validators.required,
Validators.minLength(8),
Validators.maxLength(50),
Validators.pattern(/\d+/)
]
)
};从您的代码中可以看出,当Validators.pattern是一个AsyncValidatorFn时,它看起来像是一个ValidatorFn。
https://stackoverflow.com/questions/59714054
复制相似问题