Texto de: Letícia Garcez
Introdução
A validação de dados é algo muito importante quando pensamos em trabalhar com dados inseridos por usuários, tanto no frontend quanto no backend. Fazer validações pode acabar sendo trabalhoso, mas felizmente hoje existem pacotes desenvolvidos especialmente para lidar com a validação de dados, e hoje veremos um desses pacotes: o validator.
Instalando o pacote
A instalação do pacote é bem simples, e pode ser feita com o comando npm install validator
.
Uma vez instalado, basta importar o pacote na aplicação utilizando a sintaxe dos módulos do node que é let validator = require('validator');
ou a sintaxe do ES6 import validator from 'validator';
Também é possível utilizar este pacote mediante um CDN caso você esteja trabalhando com uma página HTML simples com o código <script src="<https://unpkg.com/validator@latest/validator.min.js>"></script>
Usando o pacote
As funcionalidades implementadas no pacote validator são funções que retornam verdadeiro ou falso para um determinado tipo de validação. Para testarmos se uma string representa um e-mail, por exemplo, podemos utilizar a função validator.isEmail
, passando para ela a string que desejamos verificar:
const validator = require("validator");
console.log(validator.isEmail("fulano@mail.com"));
console.log(validator.isEmail("@emailcom"));
console.log(validator.isEmail("f@e"));
Rodando o código acima, veremos que os valores impressos no console são true
, false
, false
, ou seja, apenas o primeiro e-mail é reconhecido como e-mail válido. O método isEmail
também pode receber como segundo parâmetro um objeto com opções que serão aplicadas à validação. Embora o uso do pacote possa facilitar bastante o desenvolvimento, ainda pode ser necessário utilizar outras técnicas de validação complementares em casos específicos para garantir uma maior segurança nos dados armazenados.
Além do método isEmail
, o pacote validator também provê uma série de outras funções que podem ser utilizadas para fazer a validações. Algumas dessas funções serão indicadas abaixo.
Funções disponíveis
isAlpha
: esta função verifica se a string contém apenas caracteres alfabéticos e recebe como primeiro parâmetro uma string e como segundo parâmetro um locale que pode ser um valor como'en-IN'
,'en-US'
,'fr-FR'
,'pt-BR'
,'pt-PT'
, entre outros. O locale serve para indicar quais caracteres são considerados alfabéticos para aquela língua específica, o que faz com que a palavra caminhão seja reconhecida como uma string que possui apenas letras no locale pt-BR, mas não no locale en-US, por exemploisAlphaNumeric
: esta função verifica se a string contém apenas caracteres alfabéticos e numéricos. Assim como a funçãoisAlpha
, recebe dois parâmetros, sendo o primeiro uma string e o segundo o locale sob o qual aquela string precisa ser analisadaisCreditCard
: verifica se a string representa um número de cartão de crédito, sendo que o primeiro parâmetro recebido é a string e o segundo é o provedor do cartão de crédito que pode ser um dos seguintes valores:['amex', 'dinersclub', 'discover', 'jcb', 'mastercard', 'unionpay', 'visa']
isDate
: verifica se a string representa uma data, recebendo como primeiro parâmetro a string que se deseja analisar e como segundo parâmetro um objeto com algumas opções para a validação, como o formato da dataisEmpty
: verifica se a string passada tem tamanho zeroisHash
: verifica se a string é um código hash. O primeiro parâmetro é a string e o segundo é o tipo de codificação do hash que queremos avaliar. As opções de codificação são:['crc32', 'crc32b', 'md4', 'md5', 'ripemd128', 'ripemd160', 'sha1', 'sha256', 'sha384', 'sha512', 'tiger128', 'tiger160', 'tiger192']
isHexadecimal
: verifica se a string é um número hexadecimalinIn
: verifica se a string passada como primeiro parâmetro está entre os elementos especificados em um array passado como segundo parâmetroisJWT
: verifica se a string é um código jwtisMobilePhone
: recebe como primeiro parâmetro a string que representa um número de telefone e valida se aquela string é um número de telefone válido com base no locale que for passado como segundo parâmetroisStrongPassword
: recebe uma string como primeiro parâmetro e como segundo um objeto contendo opções que definem os critérios a serem avaliados para definir se a senha é ou não forte
Considerações finais
Neste artigo apresentamos algumas funcionalidades do pacote validator, que podem ser utilizadas para validar dados na sua aplicação. Além das funções apresentadas aqui, o pacote tem várias outras funcionalidades que você conferir com detalhes na documentação.