https://github.com/bwca/package_iso-datestring-validator
The goal of the package is to provide lightweight tools for validating strings denotings dates and time. It includes ISO 8601 datestring validation, simple YYYY-MM-DD date validation and time validation in hh:mm:ss.fff format. See details in readme.
https://github.com/bwca/package_iso-datestring-validator
date validation validator
Last synced: about 1 year ago
JSON representation
The goal of the package is to provide lightweight tools for validating strings denotings dates and time. It includes ISO 8601 datestring validation, simple YYYY-MM-DD date validation and time validation in hh:mm:ss.fff format. See details in readme.
- Host: GitHub
- URL: https://github.com/bwca/package_iso-datestring-validator
- Owner: Bwca
- License: mit
- Created: 2019-07-06T03:03:03.000Z (almost 7 years ago)
- Default Branch: develop
- Last Pushed: 2023-03-15T11:40:28.000Z (over 3 years ago)
- Last Synced: 2024-04-30T01:20:22.414Z (about 2 years ago)
- Topics: date, validation, validator
- Language: TypeScript
- Homepage:
- Size: 1.14 MB
- Stars: 5
- Watchers: 0
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# iso-datestring-validator
## What is it
A simple package for validating strings denoting dates and time, including ISO 8601 format. The package provides the following functions:
1. **Date validation**. YYYY-MM-DD format from 0001-01-01 to 9999-12-31, leap year friendly. Custom digit separators and null separators supported: YYYY/MM/DD or YYYYMMDD is no problem.
2. **Time validation**. HH:mm:ss.fff±hh:mm format, seconds, fractions of seconds and timezone offset being optional. Custom digit separators supported for HHmmss as well (no custom separator for fractions, it is dot).
**Caveat**: do not use '-' and '+' as separators when validating time with timezone. I am reluctant to fix this unless it is an issue.
```js
isValidTime('14-45-15.000+00-00', '-', true);
// will yield wrong result
```
3. **Year-month validation**.
4. **ISO 8601 datestring validation** with timezones, with and without separators:
- 2019-07-09T15:03:36.000+00:00
- 2019-07-09T15:03:36Z
- 20190709T150336Z
## Installation
```js
npm i --save iso-datestring-validator
```
or
```js
yarn add iso-datestring-validator
```
## Import
```ts
import * as isoDatestringValidator from 'iso-datestring-validator';
```
alternatively you can import the function that you need separately:
```ts
import {
isValidDate,
isValidISODateString,
isValidTime,
isValidYearMonth,
} from 'iso-datestring-validator';
```
## Usage
### Date validation
Pass a **YYYY-MM-DD** date string to the **isValidDate** function to check it. To validate dates that use a custom digit separator, pass it as the second argument.
```ts
import { isValidDate } from 'iso-datestring-validator';
isValidDate('2019-01-31');
// true
isValidDate('20190131');
// false, no custom digit separator provided, hyphen separator not found in the string
isValidDate('20190131', '');
// true
isValidDate('2019/01/31', '/');
// true
```
### Time validation
Time string in HH:mm:ss.fff±hh:mm format can be validated with the **isValidTime** function. Seconds and fractions are optional. However, if using fractions min number of numbers is 1 and max is 9. Zone offset is optional as well, its check is switched off by default.
```ts
import { isValidTime } from 'iso-datestring-validator';
isValidTime('13:00');
// true
isValidTime('13:00:00');
// true
isValidTime('13:00:00.000000000');
// true
// pass time, separator and boolean flag to enable zone offset check
isValidTime('14:45:15.000+00:00', ':', true);
// true
// you can take advantage of default separator if you pass undefined as second param
isValidTime('14:45:15.000+00:00', undefined, true);
// true
isValidTime('144515.000Z', '', true);
// true
```
### Year and month validation
These are validated by the **isValidYearMonth** function. Rules same as in the previous case: a string **YYYY-MM** and a custom digit separator if required.
```ts
import { isValidYearMonth } from 'iso-datestring-validator';
isValidYearMonth('2019/01', '/');
// true
isValidYearMonth('2019-01');
// true
```
### ISO 8601 datestring validation
Pass a string to **isValidISODateString** to see if it is valid.
```ts
import { isValidISODateString } from 'iso-datestring-validator';
isValidISODateString('2019-07-09T15:03:36.000+00:00');
// true
isValidISODateString('20190709T150336Z');
// true
```
That's all about this package. Have fun, feel free to contribute with some test :]
[](https://www.buymeacoffee.com/bwca)