UNPKG

react-formian

Version:

A React framework for easily creating and handling controlled forms

58 lines (46 loc) 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // NOTE validators must return a boolean var emailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; var phoneRegex = /\(?([0-9]{3})\)?[-.●]?([0-9]{3})[-.●]?([0-9]{4})/; var validators = {}; // ========== PREVALIDATED INPUTS validators.prevalidated = prevalidated; // ========== BOX INPUTS validators.checkbox = checkbox; validators.onoff = checkbox; validators.tinyInt = checkbox; validators.radio = prevalidated; // ========== ARRAY INPUTS validators.color = prevalidated; validators.datalist = prevalidated; validators.range = prevalidated; validators.select = checkbox; // ========== FIELD INPUTS validators.email = function email(val) { return emailRegex.test(val); }; validators.password = function password(val) { return val.length > 6; }; validators.phone = function phone(val) { return phoneRegex.test(val); }; validators.text = text; validators.textarea = text; // ========== SPECIAL INPUTS validators.recaptcha = validators.prevalidated; validators.file = checkbox; exports.default = validators; // ========== COMMON VALIDATORS function prevalidated(val) { return true; } function text(val) { return val.length > 0; } function checkbox(val) { return !!val; }