tv4-formats
Version:
Common JSON Schema string format constraints in the form of tv4 validator callbacks
43 lines (32 loc) • 1.41 kB
Markdown
# About
Provides an implementation of common [JSON Schema](http://json-schema.org/) string format
constraints in the form of
[tv4 validator callbacks.](https://github.com/geraintluff/tv4#addformatformat-validationfunction)
Thus, it's a plug-in for [tv4.](https://github.com/geraintluff/tv4)
# Usage
First, install it, together with tv4 itself, via Node.js'es [npm](https://www.npmjs.org/) into your
project
$ npm install --save tv4 tv4-formats
Then, in the code
```javascript
var tv4 = require('tv4'),
formats = require('tv4-formats'),
assert = require('assert'),
validator = tv4.freshApi(),
schema = {type: 'string', format: 'date'};
validator.addFormat(formats);
assert(validator.validate('2014-02-11', schema)); // Valid ISO 8601 date
assert(!validator.validate('2014-02-29', schema)); // Invalid. Only 28 days in this February
assert(!validator.validate('11.02.2014', schema)); // Invalid. Wrong date format
```
Here, the `format: 'date'` part of the schema validation is provided by `tv4-formats` package.
# Supported formats
* credit-card-number
* date (YYYY-MM-DD)
* date-time (for example, 2014-05-02T12:59:29+00:00)
* [duration](http://en.wikipedia.org/wiki/Iso8601#Durations) (for example, P1DT12H for 1.5 days)
* time-offset (same format as duration, but can also be negative: -P7D)
* email
* [guid](https://en.wikipedia.org/wiki/Globally_unique_identifier)
* uri
* url