About to overhaul this package due to new demand.
Promise-based validation for React Native
React Native Validation allows for quick and seamless validation out of the box. We designed the package based on Laravel's Validation and works almost interchangeably.
- Multiple languages support, as well as custom language support
- Extendable
- Easy to learn and use
- Light-weight
Install React Native Validation through NPM
$ npm i @midwestern/react-native-validation
Importing React Native Validation into your components
import Validation from '@midwestern/react-native-validation'
const Validator = new Validation({
first_name: 'required|alpha|max:255',
last_name: 'required|alpha|max:255',
email: 'required|string|email|max:255|unique:users',
password: 'required|string|min:6|confirmed'
})
Validator.validate(this.state.form)
.then(() => {
// success
})
.catch(errors => {
this.setState(state => {
state.errors = errors
return state
})
})
Rule | Description |
---|---|
required | forces the field to be required |
min:val | forces the field length to be longer than the value |
max:val | forces the field to be shorter than the value |
required | forces the field to be required |
note: your method should return a boolean which represents whether or not the validation succeeded
const Validator = new Validation({
exampleField: 'required|matchExample:OrMe'
})
Validator.extendRules({
ruleName: 'matchExample',
method: (fieldName, val, val2) => {
return val === 'example' || val === val2
},
errorMessage: {
english: 'FIELD didnt match VAR1 or example'
}
})
note: not defining an error message for a rule will result in that rule defaulting to english
const Validator = new Validation({
first_name: 'required|alpha|max:255',
last_name: 'required|alpha|max:255',
email: 'required|string|email|max:255|unique:users',
password: 'required|string|min:6|confirmed'
})
Validator.extendLanguages({
language: 'spanish',
errorMessages: {
required: 'ENTRADA es requerido',
alpha: 'ENTRADA solo puede contener caracteres alfa',
email: 'ENTRADA debe ser una dirección de correo electrónico válida',
min: 'ENTRADA la longitud debe ser más que los caracteres VAR1',
max: 'ENTRADA la longitud debe ser menor que los caracteres VAR1',
string: 'ENTRADA debe ser una cadena válida',
confirmed: 'ENTRADA debe ser confirmado'
}
})
Validator.setLanguage('spanish')
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Carter Bland - developer
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details