Saltar al contenido

Validación de Fecha y Moneda en Angular (4)

Haz todo lo posible por comprender el código bien antes de aplicarlo a tu proyecto y si ttienes algo que aportar puedes dejarlo en la sección de comentarios.

Solución:

¿Qué tipo de validación de fecha necesita? ¿Solo que el valor es una fecha válida? Si configura el type="date" en el elemento de entrada, el navegador se asegurará de que solo se ingrese una fecha válida.

Lo mismo para el validador de números que se muestra y para cualquier validador de divisas. Debería poder configurar el type="number" en el elemento de entrada y no necesitará un validador.

Si todavía hacer desea realizar su propia validación, puede usar expresiones regulares como en su ejemplo.

Simplemente busque expresiones regulares para la moneda y la fecha. Para la fecha, algo como esto: Javascript – Regex para validar el formato de fecha

Esta es otra opción para usar validadores personalizados

import  FormControl  from '@angular/forms';

export class DateValidator 

   static ptDate(control: FormControl):  [key: string]: any  
       let ptDatePattern =  /^(((0[1-9]

   static usDate(control: FormControl):  [key: string]: any  30)/(?:19

y utilícelo de esta manera para el formato “dd/mm/yyyy”:

this.formDetail = this.formBuilder.group(
   date: ['', DateValidator.ptDate],
);

y utilícelo de esta manera para el formato “mm/dd/yyyy”:

this.formDetail = this.formBuilder.group(
   date: ['', DateValidator.usDate],
);

Espero esta ayuda!

Creó un validador personalizado para manejar formatos MM/DD/YYYY y MMDDAAYY

function dateValidator(c: AbstractControl):  [key: string]: boolean  | null 
    if (c.pristine) 
        return null;
    
    if ((c.value !== undefined && c.value !== '' && c.value != null))  month === 6 
    return null;

Recuerda que puedes valorar esta sección si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *