проверка имени пользователя или адреса электронной почты в том же поле ввода в angular 9 - PullRequest
0 голосов
/ 26 мая 2020

Я использую Angular 9. Я новичок в angular и пытаюсь проверить имя пользователя / адрес электронной почты на ошибку в форме mogin. Но он проверяет только идентификатор электронной почты. Сообщение об ошибке отображается, когда я меняю значения в поле ввода. Подскажите, пожалуйста, лучший способ

    export function Usernamevalidator(EmailcontrolName: string, UserControlName: string) {
return (formGroup: FormGroup) => {
    const Emailcontrol = formGroup.controls[EmailcontrolName];
    const UserControl = formGroup.controls[UserControlName];
    const emregex=/^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$/;
    const userregex=/^[a-zA-Z0-9]+\.[a-zA-Z0-9]+$/;
    if (UserControl.errors && !UserControl.errors.Usernamevalidator) {
        return;
    }
if (/\@/.test(EmailcontrolName)) {
    if ((emregex.test(Emailcontrol.value)) ||(!UserControl.value)) {
      return Emailcontrol.setErrors({Usernamevalidator:true});
    }
}
else{
    if((userregex.test(UserControl.value)) || (!Emailcontrol.value)){
        return UserControl.setErrors({Usernamevalidator:true});
    }
    return false;
} 

}}

...