<p align="center" style="text-align:center">
    <img src="./illustration.svg" alt="illustration" width="100"/>
</p>

# simple-input-validators

> Functions for validate enter data

[![npm version](https://badge.fury.io/js/simple-input-validators.svg)](https://www.npmjs.com/package/simple-input-validators)
[![](https://data.jsdelivr.com/v1/package/npm/simple-input-validators/badge)](https://www.jsdelivr.com/package/npm/simple-input-validators)


## Table of Contents

- [Quick start](#quick-start)
  - [Install](#install)
  - [Initialization](#initialization)
- [Methods](#methods)
{{#functions}}
  - [{{name}}](#{{name}})
{{/functions}}

## Quick start

### Install

We support all platforms.

#### npm

For module bundlers such as Webpack or Browserify.

```shell
npm i simple-input-validators
```

#### Include with &lt;script&gt;

1. <a href="https://cdn.jsdelivr.net/npm/simple-input-validators/dist/lib/simple-input-validators.js" target="_blank">Download lib</a>
2. Add script to html

```html
<script src="simple-input-validators.js"></script>
```

##### CDN

Recommended for learning purposes, you can use the latest version:

```html
<script src="https://cdn.jsdelivr.net/npm/simple-input-validators/dist/lib/simple-input-validators.js"></script>
```

Recommended for production for avoiding unexpected breakage from newer versions:

```html
<script src="https://cdn.jsdelivr.net/npm/simple-input-validators@0.0.0/dist/lib/simple-input-validators.js"></script>
```

### Initialization

#### ES6

simple-input-validators as an ES6 module.

```js
import {
    isShorterThanLimit,
    isLongerThanLimit,
    isGreaterThanLimit,
    isLessThanLimit,
    isWrittenValueEmpty,
    isMailInvalid,
    isNumberValid,
    errorDataHandler
} from 'simple-input-validators';

let hasError = true,
    inputRules = {
        minLengthRules: {
            limit: 1,
            message: 'is short'
        },
        maxLengthRules: {
            limit: 3,
            message: 'is long'
        },
        isEmptyRules: {
            message: 'is empty'
        },
        maxValueRules: {
            limit: 125,
            message: 'is greater'
        },
        minValueRules: {
            limit: 10,
            message: 'is less'
        },
        emailRules: {
            message: 'not valid email'
        },
        numberRules: {
            message: 'not valid number'
        },
    },
    commonErrorData = {
        hasError: false,
        message: ''
    },
    writtenValue = '55'

if (isShorterThanLimit(writtenValue, inputRules.minLengthRules)) {
    errorDataHandler(commonErrorData, {...inputRules.minLengthRules, hasError})
}

if (isLongerThanLimit(writtenValue, inputRules.maxLengthRules)) {
    errorDataHandler(commonErrorData, {...inputRules.maxLengthRules, hasError})
}

if (isWrittenValueEmpty(writtenValue)) {
    errorDataHandler(commonErrorData, {...inputRules.isEmptyRules, hasError})
}

if (isGreaterThanLimit(writtenValue, inputRules.maxValueRules)) {
    errorDataHandler(commonErrorData, {...inputRules.maxValueRules, hasError})
}

if (isLessThanLimit(writtenValue, inputRules.minValueRules)) {
    errorDataHandler(commonErrorData, {...inputRules.minValueRules, hasError})
}

if (isMailInvalid(writtenValue)) {
    errorDataHandler(commonErrorData, {...inputRules.emailRules, hasError})
}

if (!isNumberValid(writtenValue)) {
    errorDataHandler(commonErrorData, {...inputRules.numberRules, hasError})
}

```

#### Node

simple-input-validators as a Node.js module

```js
const { isShorterThanLimit,
        isLongerThanLimit,
        isGreaterThanLimit,
        isLessThanLimit,
        isWrittenValueEmpty,
        isMailInvalid,
        isNumberValid,
        errorDataHandler
} = require('simple-input-validators');

let hasError = true,
    inputRules = {
        minLengthRules: {
        limit: 1,
            message: 'is short'
        },
        maxLengthRules: {
            limit: 3,
            message: 'is long'
        },
        isEmptyRules: {
            message: 'is empty'
        },
        maxValueRules: {
            limit: 125,
            message: 'is greater'
        },
        minValueRules: {
            limit: 10,
            message: 'is less'
        },
        emailRules: {
            message: 'not valid email'
        },
        numberRules: {
            message: 'not valid number'
        },
    },
    commonErrorData = {
        hasError: false,
        message: ''
    },
    writtenValue = '55'

if (isShorterThanLimit(writtenValue, inputRules.minLengthRules)) {
    errorDataHandler(commonErrorData, {...inputRules.minLengthRules, hasError})
}

if (isLongerThanLimit(writtenValue, inputRules.maxLengthRules)) {
    errorDataHandler(commonErrorData, {...inputRules.maxLengthRules, hasError})
}

if (isWrittenValueEmpty(writtenValue)) {
    errorDataHandler(commonErrorData, {...inputRules.isEmptyRules, hasError})
}

if (isGreaterThanLimit(writtenValue, inputRules.maxValueRules)) {
    errorDataHandler(commonErrorData, {...inputRules.maxValueRules, hasError})
}

if (isLessThanLimit(writtenValue, inputRules.minValueRules)) {
    errorDataHandler(commonErrorData, {...inputRules.minValueRules, hasError})
}

if (isMailInvalid(writtenValue)) {
    errorDataHandler(commonErrorData, {...inputRules.emailRules, hasError})
}

if (!isNumberValid(writtenValue)) {
    errorDataHandler(commonErrorData, {...inputRules.numberRules, hasError})
}
```

#### Browser

Exports a global variable called `simpleInputValidators`. Use it like this

Connect to html file ```<script src="https://cdn.jsdelivr.net/npm/simple-input-validators/dist/lib/simple-input-validators.js" ></script>```

```html
<script>

    let hasError = true,
        inputRules = {
            minLengthRules: {
                limit: 1,
                message: 'is short'
            },
            maxLengthRules: {
                limit: 3,
                message: 'is long'
            },
            isEmptyRules: {
                message: 'is empty'
            },
            maxValueRules: {
                limit: 125,
                message: 'is greater'
            },
            minValueRules: {
                limit: 10,
                message: 'is less'
            },
            emailRules: {
                message: 'not valid email'
            },
            numberRules: {
                message: 'not valid number'
            },
        },
        commonErrorData = {
            hasError: false,
            message: ''
        },
        writtenValue = '55'

    if (simpleInputValidators.isShorterThanLimit(writtenValue, inputRules.minLengthRules)) {
        simpleInputValidators.errorDataHandler(commonErrorData, {...inputRules.minLengthRules, hasError})
    }

    if (simpleInputValidators.isLongerThanLimit(writtenValue, inputRules.maxLengthRules)) {
        simpleInputValidators.errorDataHandler(commonErrorData, {...inputRules.maxLengthRules, hasError})
    }

    if (simpleInputValidators.isWrittenValueEmpty(writtenValue)) {
        simpleInputValidators.errorDataHandler(commonErrorData, {...inputRules.isEmptyRules, hasError})
    }

    if (simpleInputValidators.isGreaterThanLimit(writtenValue, inputRules.maxValueRules)) {
        simpleInputValidators.errorDataHandler(commonErrorData, {...inputRules.maxValueRules, hasError})
    }

    if (simpleInputValidators.isLessThanLimit(writtenValue, inputRules.minValueRules)) {
        simpleInputValidators.errorDataHandler(commonErrorData, {...inputRules.minValueRules, hasError})
    }

    if (simpleInputValidators.isMailInvalid(writtenValue)) {
        simpleInputValidators.errorDataHandler(commonErrorData, {...inputRules.emailRules, hasError})
    }

    if (!simpleInputValidators.isNumberValid(writtenValue)) {
        simpleInputValidators.errorDataHandler(commonErrorData, {...inputRules.numberRules, hasError})
    }

</script>
```

#### AMD

simple-input-validators as an AMD module. Use with Require.js, System.js, and so on.

1. <a href="https://cdn.jsdelivr.net/npm/simple-input-validators/dist/lib/simple-input-validators.js" target="_blank">Download lib</a>
2. Connect to your module loader

```js
requirejs(['simple-input-validators'], function(simpleInputValidators) {
    let hasError = true,
        inputRules = {
            minLengthRules: {
                limit: 1,
                message: 'is short'
            },
            maxLengthRules: {
                limit: 3,
                message: 'is long'
            },
                isEmptyRules: {
                message: 'is empty'
            },
            maxValueRules: {
                limit: 125,
                message: 'is greater'
            },
            minValueRules: {
                limit: 10,
                message: 'is less'
            },
            emailRules: {
                message: 'not valid email'
            },
            numberRules: {
                message: 'not valid number'
            },
        },
        commonErrorData = {
            hasError: false,
            message: ''
        },
        writtenValue = '55'

    if (simpleInputValidators.isShorterThanLimit(writtenValue, inputRules.minLengthRules)) {
        simpleInputValidators.errorDataHandler(commonErrorData, {...inputRules.minLengthRules, hasError})
    }

    if (simpleInputValidators.isLongerThanLimit(writtenValue, inputRules.maxLengthRules)) {
        simpleInputValidators.errorDataHandler(commonErrorData, {...inputRules.maxLengthRules, hasError})
    }

    if (simpleInputValidators.isWrittenValueEmpty(writtenValue)) {
        simpleInputValidators.errorDataHandler(commonErrorData, {...inputRules.isEmptyRules, hasError})
    }

    if (simpleInputValidators.isGreaterThanLimit(writtenValue, inputRules.maxValueRules)) {
        simpleInputValidators.errorDataHandler(commonErrorData, {...inputRules.maxValueRules, hasError})
    }

    if (simpleInputValidators.isLessThanLimit(writtenValue, inputRules.minValueRules)) {
        simpleInputValidators.errorDataHandler(commonErrorData, {...inputRules.minValueRules, hasError})
    }

    if (simpleInputValidators.isMailInvalid(writtenValue)) {
        simpleInputValidators.errorDataHandler(commonErrorData, {...inputRules.emailRules, hasError})
    }

    if (!simpleInputValidators.isNumberValid(writtenValue)) {
        simpleInputValidators.errorDataHandler(commonErrorData, {...inputRules.numberRules, hasError})
    }
});
```

## Methods

{{#functions}}
### {{name}}

{{#if description}}{{description}}{{/if}}

{{#if since}}
#### Since
- {{since}}
{{/if}}

{{#if params}}
#### Params
{{#each params}}
- `{{name}}`
  {{#if type.names}}- Type: `{{type.names}}`{{/if}}
  {{#if description}}- Description: {{description}}{{/if}}
{{/each}}
{{/if}}

{{#if returns}}
#### Returns
{{#each returns}}
- `{{type.names}}`
{{/each}}
{{/if}}

{{#if examples}}
#### Example
{{#each examples}}
```JS
{{{this}}}
```
{{/each}}
{{/if}}


{{/functions}}

## Author

webster6667
