Created
July 16, 2018 14:38
-
-
Save kaleem-elahi/e575b938af06b6447931357ac2988a59 to your computer and use it in GitHub Desktop.
Validation for react
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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