Medium
Understanding Custom Form Field Validation Output in JavaScript with Regular Expressions
While implementing a custom form validation library, what will be the output of this field validator?
1class FieldValidator {2 static rules = {3 required: value => ({4 valid: value !== undefined && value !== '',5 message: 'Field is required'6 }),7 minLength: min => value => ({8 valid: String(value).length >= min,9 message: `Minimum length is ${min}`10 }),11 pattern: regex => value => ({12 valid: regex.test(String(value)),13 message: 'Invalid format'14 })15 };1617 static validate(value, validations) {18 const errors = validations19 .map(validation => {20 if (typeof validation === 'function') {21 return validation(value);22 }23 return this.rules[validation](value);24 })25 .filter(result => !result.valid)26 .map(result => result.message);2728 return {29 valid: errors.length === 0,30 errors31 };32 }33}3435const phoneValidation = [36 'required',37 FieldValidator.rules.pattern(/^\d{10}$/),38 FieldValidator.rules.minLength(10)39];4041console.log(FieldValidator.validate('12345', phoneValidation));