Validaciones Personalizadas de Contraseñas en Angular
Clase 18 de 37 • Curso de Angular Forms: Creación y Optimización de Formularios Web
Contenido del curso
- 5

Ventajas de los Formularios Reactivos en Angular
01:32 - 6

For Control en Formularios Reactivos: Creación y Uso Básico
17:16 - 7

Tipos de Input en HTML y su Impacto en la Experiencia de Usuario
08:12 - 8

Uso de Selects y Selectores Múltiples en Formularios HTML
07:00 - 9

Implementación de Inputs Radio y Checkbox en Formularios HTML
09:20 - 10

Validaciones en Formularios con Angular: Sincronización y Estados
12:15 - 11

Integración de CSS Dinámico en Formularios Reactivos con Angular
12:42
- 12

Manejo de formularios reactivos con FormGroup en Angular
10:00 - 13

Creación de Formularios Reactivos con FormBuilder en Angular
12:25 - 14

Validaciones en Angular: 11 Métodos y Expresiones Regulares
13:40 - 15

Manejo de FormGroups Anidados en Formularios Angular
09:23 - 16

Implementación de Formularios con Angular Material
14:31 - 17

Errores Comunes en Formularios Angular Material
05:27 - 18

Validaciones Personalizadas de Contraseñas en Angular
15:22
- 19

Validaciones Grupales en Formularios Reactivos de Angular
10:11 - 20

Validaciones Condicionadas en Formularios Reactivos
09:09 - 21

Gestión de Categorías en Angular: Creación y Edición de Formularios
06:32 - 22

Conexión de una API REST con Angular y Postman
15:47 - 23

Subir Imágenes a FiberStorage con Angular y HTML
12:36 - 24

Validaciones Asíncronas con API para Formularios de Categorías
17:55 - 25

Edición de Categorías con Patch Value en Angular
11:16 - 26

Editar y Crear Categorías con un Solo Formulario
06:01
- 27

Patrón Smart y DOM Components en Formularios Angular
17:01 - 28

Modificación de Inputs en Angular con Setters y Ciclo de Vida
09:49 - 29

"Mejoras en Formularios y Validaciones de Productos"
10:13 - 30

Select dinámico con Angular y API de categorías
12:17 - 31

Select dinámico con objetos en Angular y Angular Material
07:45 - 32

Creación de Formularios Dinámicos con Reactive Forms en Angular
15:35
- 33

Conexión de Componentes Propios a Reactive Forms en Angular
19:40 - 34

Optimización de búsquedas con NGRX y HTTP en Angular
15:46 - 35

Optimización de Búsquedas con Debounce Time en Angular
06:47 - 36

Fundamentos de Accesibilidad Web para Desarrolladores
07:01 - 37

Rendimiento y Optimización en Aplicaciones Angular
01:27
¿Cómo crear validaciones personalizadas en Angular?
Crear validaciones personalizadas en Angular permite diseñar reglas específicas que no están cubiertas por las validaciones integradas. Por ejemplo, si necesitas que una contraseña contenga un número, puedes implementar tu propia lógica. Pero, ¿cómo se logra esto en Angular? Vamos a explorarlo paso a paso.
¿Qué necesitamos para empezar?
Para agregar una validación personalizada en Angular, es crucial tener un formulario previamente construido. En el ejemplo que veremos, utilizamos un formulario de registro que debe validar la presencia de al menos un número en el campo de contraseña. Además, se recomienda contar con conocimientos básicos de JavaScript y TypeScript, dado que se utilizarán funciones específicas de estos lenguajes en el proceso.
¿Cómo implementamos la lógica en JavaScript?
Se necesita comprender ciertos métodos de JavaScript para implementar la validación de manera eficaz:
- Convertir el string en un array: Utilizamos
split('')para separar cada caracter de la contraseña en un arreglo:let password = 'Juanito2010'; let caracteres = password.split(''); - Encontrar un número: Empleamos
findpara verificar la existencia de al menos un número:const contieneNumero = caracteres.find(caracter => !isNaN(parseInt(caracter))); - Verificar el tipo de dato: La función
isNaNayuda a identificar si un caracter es un número después de intentar convertirlo conparseInt.
Creación de la validación personalizada en TypeScript
La validación personalizada se implementa como un método estático dentro de una clase de validadores, como se muestra a continuación:
import { AbstractControl, ValidationErrors } from '@angular/forms';
export class MyValidators {
static validPassword(control: AbstractControl): ValidationErrors | null {
const value: string = control.value || '';
// Split the string and find any numeric character
const contieneNumero = value.split('').find(caracter => !isNaN(parseInt(caracter)));
// Return null if the password contains a number (valid), otherwise return an error
return contieneNumero ? null : { invalidPassword: true };
}
}
¿Cómo integrarlo en el formulario?
Una vez que el método esté listo, se integra en el formulario de la siguiente manera:
-
Importar el validador en el componente:
import { MyValidators } from '[ruta-a-utils]/validators'; -
Incorporar al FormGroup:
this.form = this.formBuilder.group({ password: ['', [Validators.required, MyValidators.validPassword]], // otros campos... }); -
Visualización de errores en el template: Utiliza
*ngIfpara mostrar errores específicos:<mat-error *ngIf="form.get('password').hasError('invalidPassword')"> La contraseña debe contener al menos un número. </mat-error>
Probando la validación
Para asegúrate de que tu validación funciona:
- Intenta ingresar una contraseña solo con letras y observa si muestra el mensaje de error.
- Luego, ingresa una contraseña que incluya al menos un número y verifica que el mensaje desaparezca.
Con este proceso, no solo fortaleces la seguridad de tus formularios, sino que también ofreces una mejor experiencia de usuario. A medida que te familiarices con las validaciones personalizadas, encontrarás que puedes adaptar las reglas de acuerdo a las necesidades específicas de tu aplicación. ¡Anímate a seguir explorando y mejorando tus habilidades en Angular!