import { ValidationErrors, UntypedFormControl } from '@angular/forms'; const passwordPattern = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,20}$/; export const PasswordRuleValidator = (control: UntypedFormControl): ValidationErrors | null => { const value = control.value; if (!value) { return null; } return passwordPattern.test(value) ? null : { invalidPattern: true }; };