Установка и подключение

Библиотека Validator.js распространяется через npm и предназначена для проверки и очистки строковых данных. Чаще всего используется в проектах на Node.js, а также во frontend-приложениях, работающих через сборщики вроде Webpack, Vite или Parcel.

Установка через npm

npm install validator

После установки пакет появится в разделе dependencies файла package.json.

Пример:

{
  "dependencies": {
    "validator": "^13.15.15"
  }
}

Установка через Yarn

yarn add validator

Установка через pnpm

pnpm add validator

Подключение в Node.js

Подключение через CommonJS

Для классических Node.js-проектов используется require.

const validator = require('validator');

После подключения становятся доступны методы библиотеки.

Пример проверки email:

const validator = require('validator');

const email = 'admin@example.com';

console.log(validator.isEmail(email));

Результат:

true

Подключение через ES Modules

В современных проектах используется синтаксис import.

import validator from 'validator';

Пример:

import validator from 'validator';

const url = 'https://example.com';

console.log(validator.isURL(url));

Использование отдельных функций

Validator.js поддерживает импорт отдельных методов. Это уменьшает размер итогового bundle-файла во frontend-приложениях.

Импорт конкретной функции

import isEmail from 'validator/lib/isEmail';

Пример:

import isEmail from 'validator/lib/isEmail';

console.log(isEmail('user@mail.com'));

Импорт нескольких функций

import isEmail from 'validator/lib/isEmail';
import isURL from 'validator/lib/isURL';
import isStrongPassword from 'validator/lib/isStrongPassword';

Подключение в браузере

Через CDN

Библиотеку можно подключить напрямую через тег <script>.

<script src="https://cdn.jsdelivr.net/npm/validator@13.15.15/validator.min.js"></script>

После подключения объект validator становится глобально доступным.

Пример:

<script>
    console.log(
        validator.isEmail('test@example.com')
    );
</script>

Проверка успешного подключения

Проверка версии библиотеки

console.log(validator.version);

Проверка существования метода

console.log(typeof validator.isEmail);

Результат:

function

Структура библиотеки

После подключения доступно большое количество методов.

Пример:

import validator from 'validator';

console.log(Object.keys(validator));

Некоторые популярные методы:

Метод Назначение
isEmail() Проверка email
isURL() Проверка URL
isMobilePhone() Проверка номера телефона
isStrongPassword() Проверка сложности пароля
isNumeric() Проверка числа
isDate() Проверка даты
escape() Экранирование HTML
trim() Удаление пробелов

Использование с TypeScript

Validator.js содержит встроенные типы, поэтому дополнительная установка @types обычно не требуется.

Пример подключения

import validator from 'validator';

const email: string = 'admin@example.com';

const result: boolean = validator.isEmail(email);

console.log(result);

Подключение в Express-приложении

Validator.js часто применяется для валидации данных HTTP-запросов.

Установка Express

npm install express

Пример использования

import express from 'express';
import validator from 'validator';

const app = express();

app.use(express.json());

app.post('/register', (req, res) => {

    const { email } = req.body;

    if (!validator.isEmail(email)) {
        return res.status(400).json({
            error: 'Некорректный email'
        });
    }

    res.json({
        success: true
    });

});

app.listen(3000);

Подключение в React

Установка

npm install validator

Пример использования

import { useState } from 'react';
import validator from 'validator';

function App() {

    const [email, setEmail] = useState('');

    const checkEmail = () => {
        console.log(
            validator.isEmail(email)
        );
    };

    return (
        <div>
            <input
                type="text"
                onCha nge={(e) => setEmail(e.target.value)}
            />

            <button onCl ick={checkEmail}>
                Проверить
            </button>
        </div>
    );

}

Подключение в Vue

import validator from 'validator';

export default {

    data() {
        return {
            email: ''
        };
    },

    methods: {

        validateEmail() {
            return validator.isEmail(this.email);
        }

    }

};

Подключение в Vite

Создание проекта

npm create vite@latest

Установка библиотеки

npm install validator

Использование

import validator from 'validator';

console.log(
    validator.isURL('https://site.com')
);

Использование в Next.js

npm install validator

Пример:

import validator from 'validator';

export default function Home() {

    const valid = validator.isEmail(
        'admin@example.com'
    );

    return (
        <div>{String(valid)}</div>
    );

}

Использование в NestJS

Установка

npm install validator

Пример сервиса

import { Injectable } from '@nestjs/common';
import validator from 'validator';

@Injectable()
export class UserService {

    validateEmail(email: string): boolean {
        return validator.isEmail(email);
    }

}

Подключение только sanitizer-функций

Validator.js содержит не только валидаторы, но и функции очистки данных.

Импорт sanitize-функций

import escape from 'validator/lib/escape';
import trim from 'validator/lib/trim';

Пример:

const text = '   <script>alert(1)</script>   ';

const cleaned = trim(
    escape(text)
);

console.log(cleaned);

Результат:

&lt;script&gt;alert(1)&lt;/script&gt;

Проверка дерева зависимостей

После установки можно проверить наличие пакета:

npm list validator

Пример результата:

project
└── validator@13.15.15

Обновление библиотеки

Обновление через npm

npm update validator

Установка конкретной версии

npm install validator@13.15.15

Удаление библиотеки

Через npm

npm uninstall validator

Через Yarn

yarn remove validator

Типичные ошибки подключения

Ошибка Cannot find module 'validator'

Причины:

  • библиотека не установлена;
  • выполнена установка в другой директории;
  • повреждён node_modules.

Решение:

npm install validator

Ошибка SyntaxError: Cannot use import statement outside a module

Причина — Node.js работает в режиме CommonJS.

Решения:

Использовать require

const validator = require('validator');

Либо включить ES Modules

{
  "type": "module"
}

Ошибка при импорте отдельных функций

Неправильно:

import { isEmail } from 'validator';

В некоторых окружениях такой импорт может работать некорректно.

Надёжный вариант:

import isEmail from 'validator/lib/isEmail';

Практический пример базового подключения

import validator from 'validator';

const user = {
    email: 'admin@example.com',
    password: 'Qwerty123!'
};

const emailValid = validator.isEmail(user.email);

const passwordValid = validator.isStrongPassword(
    user.password
);

if (emailValid && passwordValid) {

    console.log('Данные корректны');

} else {

    console.log('Ошибка валидации');

}

Минимальная структура проекта

project/
│
├── node_modules/
├── package.json
├── package-lock.json
└── index.js

package.json

{
  "name": "validator-project",
  "version": "1.0.0",
  "type": "module",
  "dependencies": {
    "validator": "^13.15.15"
  }
}

index.js

import validator from 'validator';

console.log(
    validator.isEmail('test@mail.com')
);

Запуск

node index.js