1

How do I store Multiple Validators into a Constant and use in Reactive FormBuilder? The following will apply 1 validator. Store and Use Regex Const Validator in Angular 8 Reactive Formbuilder

export const ZipValidation = Validators.pattern(/^\d{1,5}$/);

'ZipCode': [null, [Validators.maxLength(16), ZipValidation]],

We need to store a whole multiple array into a constant. This is multiple validators for latitude and longitude.

Validators.maxLength(32),
Validators.min(-90),
Validators.max(90),
Validators.pattern(/^\d*\.?\d*$/)

I tried doing the following, it is not working

export const LatitudeLongitudeValidator = [Validators.maxLength(32),Validators.min(-90),Validators.max(90),Validators.pattern(/^\d*\.?\d*$/)];

'latitude': [null, [LatitudeLongitudeValidator]],

1 Answers1

3

You can have array of all these validations and then using spread operator use that array inside validator,

export const CustomValidation = [
    Validators.maxLength(32),
    Validators.min(-90),
    Validators.max(90),
    Validators.pattern(/^\d*\.?\d*$/)
]

Use this array in formgroup,

'formField': ['', [ ...CustomValidation ]],

Spread operator is 3 periods dots ... just before array variable.

Plochie
  • 3,944
  • 1
  • 17
  • 33
  • you need to use spread operator `...`, do it like this `'latitude': [null, [...LatitudeLongitudeValidator]],` – Plochie Dec 24 '19 at 09:29