Skip to content

Instantly share code, notes, and snippets.

@kaleem-elahi
Created July 16, 2018 14:38
Show Gist options
  • Save kaleem-elahi/e575b938af06b6447931357ac2988a59 to your computer and use it in GitHub Desktop.
Save kaleem-elahi/e575b938af06b6447931357ac2988a59 to your computer and use it in GitHub Desktop.
Validation for react
import moment from 'moment';
export const email = /^(([^<>()[\]\\.,;:\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,}))$/;
export const specialCharactersRegex = /^[0-9a-zA-Z _-]{1,30}$/;
export const required = value => (!value ? 'Required' : undefined);
export const isEqual = (value, compareValue) => (value === compareValue);
export const phone = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
export const website = /^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/;
export const matchRegEx = (value, pattern) => (value && pattern && value.match(pattern));
export const minValue = (value, min) =>
(
value && value.length < min ? `Must be at least ${min}` : undefined
);
export const hasChildren = value => (value && value.length > 0 ? undefined : 'Required');
export const compare = (expectedSmaller, expectedGreater) => (expectedSmaller <= expectedGreater);
export const compareDate = (firstDate, secondDate) => !moment(firstDate).isBefore(secondDate);
export const numeric = /^[0-9]?[0-9]{1}$|^100$/;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment