ajv date-time validation
by anandamasri
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/ajv/6.10.2/ajv.bundle.js"></script>
JavaScript
// My example schema
const schema = {
"properties": {
"createdAt": {
"type": "object",
"format": "custom-date-time"
},
"lastName": {
"type": "string"
},
"firstName": {
"type": "string"
}
}
};
// My example testobject
const testObj = {
createdAt: new Date(),
lastName: "Doe",
firstName: "John"
}
// The validation
ajv = new Ajv();
ajv.addFormat('custom-date-time', function(dateTimeString) {
if (typeof dateTimeString === 'object') {
dateTimeString = dateTimeString.toISOString();
}
return !isNaN(Date.parse(dateTimeString)); // return true/false
});
const validate = ajv.compile(schema);
const valid = validate(testObj);
if (valid)
alert('valid');
else
alert('Invalid: ' + ajv.errorsText(validate.errors));