1.0.8 • Published 2 years ago
custom-basic-validator v1.0.8
custom-basic-validator.js
The library can also be installed through npm
$ npm install --save-dev custom-basic-validator
No ES6
var validator = require("custom-basic-validator");
var ValidatorForm = Validator.ValidatorForm; // => [class ValidatorForm]
ES6
import { ValidatorForm } from "custom-basic-validator";
Or, import only a subset of the library:
import ValidatorForm from "custom-basic-validator/lib/validator-form";
Basic usage
const { ValidatorForm } = require("../index");
function validatorAddress(value, callback) {
callback(new Error("Please enter address!"));
}
var formData = {
name: "test name",
age: "",
address: "",
};
var formRule = {
name: [
{ required: true, message: "Please enter name!" },
{ min: 1, max: 5, message: "Name length cannot be between 1 and 5" },
],
age: [{ type: "number", message: "Age must be numeric" }],
address: [{ validator: validatorAddress }],
};
var innerForm = new ValidatorForm(formData, formRule, false);
innerForm.validate(function (validate, fields) {
console.info("validate ==>", validate, fields);
// false
// [
// { field: 'name', message: 'Name length cannot be between 1 and 5' },
// { field: 'age', message: 'Age must be numeric' },
// { field: 'address', message: 'Please enter address!' }
// ]
});
Advanced usage
const { ValidatorForm } = require("../index");
const formData = {
name: "",
child: {
name: "",
grand: {
name: "",
},
},
};
const formRule = {
name: [{ required: true, message: "Please enter name!" }],
child: [{ validator: validatorChild }],
};
const formChildRule = {
name: [{ required: true, message: "Please enter child name!" }],
grand: [{ validator: validatorGrand }],
};
const formGrandRule = {
name: [{ required: true, message: "Please enter grandson name!" }],
};
function validatorChild(value, callback) {
const innerForm = new ValidatorForm(formData.child, formChildRule, false);
innerForm.validate(function (validate, fields) {
if (validate) {
callback();
} else {
callback(fields);
}
});
}
function validatorGrand(value, callback) {
const innerForm = new ValidatorForm(
formData.child.grand,
formGrandRule,
false
);
innerForm.validate(function (validate, fields) {
if (validate) {
callback();
} else {
callback(fields);
}
});
}
const innerForm = new ValidatorForm(formData, formRule, false);
innerForm.validate(function (validate, fields) {
console.info("validate ==>", validate, fields);
// false
// [
// { field: 'name', message: 'Please enter name!' },
// { field: 'child.name', message: 'Please enter child name!' },
// { field: 'child.grand.name', message: 'Please enter grandson name!' }
// ]
});
Advanced usage - array of nested objects
const { ValidatorForm } = require("../index");
const formData = {
name: "",
child: [
{
childName: "",
},
],
};
const formRule = {
name: [{ required: true, message: "Please enter name!" }],
child: [{ validator: validatorChild }],
};
const formChildRule = {
childName: [{ required: true, message: "Please enter child name!" }],
};
function validatorChild(value, callback) {
let result = [];
for (const item of value) {
const innerForm = new ValidatorForm(item, formChildRule, false);
innerForm.validate(function (validate, fields) {
if (!validate) {
result = result.concat(fields);
}
});
}
if (result.length) {
callback(result);
} else {
callback();
}
}
const innerForm = new ValidatorForm(formData, formRule, false);
innerForm.validate(function (validate, fields) {
console.info("validate ==>", validate, fields);
// false
// [
// { field: 'name', message: 'Please enter name!' },
// { field: 'child.grand.name', message: 'Please enter child name!' }
// ]
});
Validator
Validator | Description |
---|---|
ValidatorForm(data, rule, status) | Check if the form data is correct.data is an object. check the form objectrule is an object. check form object validation rulesstatus comparison all the data and return the result, default false . |
ValidatorForm Methods
Method | Description |
---|---|
validate(callback) | Check if the form data is correct.callback is an function that defaults return to (validator, fields)Callback: validator : validation results, default true .fields : validation exception field array, default [] . |
ValidatorForm Rule Attributes
Method | Description |
---|---|
message | Check form data error message. default "" |
required | Check if the form data is empty. default false |
type | Check the form data type. default string data type is one of ['number','string', 'array', 'date'] . |
max | Check the form data max length. |
min | Check the form data min length. |
minimum | Check the form data minimum. |
maximum | Check the form data maximum. |
validator(value, callback) | Check the form data custom validator function. value : Check form data.callback : Callback function must be executed.Example: callback() or callback(new Error("Error message")) . |