1.0.40 • Published 4 years ago

pp-validator v1.0.40

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

Plugin pp-validator

Plugin de validação de entrada de dados em javascript.

  • Este plugin esta no repositorio do NPM, aqui .

Instalação

Requer Node.js

  • npm i pp-validator
  • Import a lib para o projeto com a tag
<script: src="your_path_node_modules/pp-validator/dist/bundle.js"></script>

Como Usar

Crie um objeto com a propriedade obrigatória 'validators' do tipo array com a quantidade de elementos que queira validar, passando 2 propriedades para cada nó.

element

-- O elemento DOM do html. -- Precisa definir o name nos inputs para o retorno correto do input validado. -- Nesse exemplo a busca dos elementos foi feita em cima do name, mas pode ser de qualquer outra forma, (id, classes, etc..)

rules

-- Array de regras para o elemento em questão ser validado. -- Exemplo de apenas uma regra especifica: 'isCpfOrCnpj'. obs: Nesse caso não precisa validar se é vazio, regras especificas ja fazem isso. -- Exemplo com varias regras: 'isNotEmpty', 'IsString'

response

-- Permite escrever uma mensagem personalizada para facilitar na hora de mostrar a mensagem para o usuário sobre aquele erro no campo especifico

PluginValidator

Ao construir o objeto com as validações, invoque a o serviço PluginValidator passando os argumentos.

let result = PluginValidator( args );   
console.log(result);
Inputs

No Html:

   <div class="column">
       <label for="name">NOME</label>
       <input name="name" type="text" id="name">
   </div>
   
   <div class="column">
       <label for="name">IDADE</label>
       <input name="age" type="text" id="age">
   </div>

   <div class="column">
       <label for="CPF">CPF / CNPJ</label>
       <input name="cpf" type="text" id="cpf">
   </div>

   <div class="column">
       <label for="phone">TELEFONE</label>
       <input name="phone" type="text" id="phone">
   </div>

   <div class="column">
       <label for="cellphone">CELULAR</label>
       <input name="cellphone" type="text" id="cellphone">
   </div>

   <div class="column">
       <label for="DATA">DATA INPUT TYPE DATE</label>
       <input name="date" type="date" id="date">
   </div>
   
   <div class="column">
       <label for="DATA">DATA INPUT TYPE TEXT</label>
       <input name="date_text" type="text" id="date_text">
   </div>

   <div class="column">
       <label for="DATA">ANIVERŚARIO TYPE DATE</label>
       <input name="birthday_date" type="date" id="birthday_date">
   </div>

   <div class="column">
       <label for="DATA">ANIVERŚARIO TYPE TEXT</label>
       <input name="birthday" type="text" id="birthday">
   </div>

   <div class="column">
       <select name="options" id="options">
           <option value="0">Selecione</option>
           <option value="1">Me escolha :)</option>
           <option value="2">Não! escolha eu :~)</option>
       </select>
   </div>

   <div class="column">
       <button type="button" onclick="toDo()">validar</button>
   </div>       
Código javascript

No Javascript

 function toDo() 
    {
        let args = {

                'validators': [
                    { 
                        'element': document.querySelector('input[name=name]'),
                        'rules': ['isNotEmpty', 'isString', 'isFullName'],
                        'response': 'Digite seu nome completo!'
                    },
                    { 
                        'element': document.querySelector('input[name=age]'),
                        'rules': ['isNotEmpty', 'isInt'],
                        'response': 'Campo não pode ser vazio!'
                    },
                    { 
                        'element': document.querySelector('input[name=cpf]'),
                        'rules': ['isCpfOrCnpj'],
                        'response': 'CPF/CNPJ inválido!'
                    },
                    { 
                        'element': document.querySelector('input[name=date]'),
                        'rules': ['isDate'],
                        'response': 'Data inválida!'
                    },
                    { 
                        'element': document.querySelector('input[name=date_text]'),
                        'rules': ['isDate'],
                        'response': 'Data inválida!'
                    },
                    { 
                        'element': document.querySelector('input[name=phone]'),
                        'rules': ['isPhone'],
                        'response': 'Telefone inválido!'
                    },
                    { 
                        'element': document.querySelector('input[name=cellphone]'),
                        'rules': ['isCellphone'],
                        'response': 'Celular inválido!'
                    },
                    { 
                        'element': document.querySelector('input[name=birthday_date]'),
                        'rules': ['isOfAge'],
                        'response': 'Para acessar você precisa ter mais de 18 anos!'
                    },
                    { 
                        'element': document.querySelector('input[name=birthday]'),
                        'rules': ['isOfAge'],
                        'response': 'Para acessar você precisa ter mais de 18 anos!'
                    },
                    { 
                        'element': document.querySelector('#options'),
                        'rules': ['isNotEmpty'],
                        'response': 'Selecione uma opção!'
                    },
                ]
            }   
            
        let result = PluginValidator( args );   
Resultado

Retorna um objeto com resultado das validações

[{"name":"name","valid":false},{"name":"age","valid":false},{"name":"cpf","valid":false},{"name":"date","valid":false},{"name":"date_text","valid":false}, isValid: false]
Atenção

Se alguma validação falhar, a propriedade isValid retornara false, caso contratio retornara true, facilitando a iteração pelo objeto, caso não precise buscar o nome do elemento que fracassou na validação.

Lista de Regras

Essas são as regras atualmente, podendo crescer como a necessidade de novas implementações.

PluginREADME
isStringVerifica se é do tipo String.
isIntVerifica se é do tipo Int.
isNotEmptyVerifica se é não é undefined/vazio/null e maior que 0 para elementos do tipo select.
isCpfVerifica se é um CPF Válido
Se vier com mascara, a função já remove.
isCnpjVerifica se é um CNPJ.
Se vier com mascara, a função já remove.
Obs.: apenas verifica a quantidade de caracteres do input por enquanto
isCpfOrCnpjVerifica se é um CPF/CNPJ.
Se vier com mascara, a função já remove.
CPF.: verifica se é um cpf válido
CNPJ.: apenas verifica a quantidade de caracteres do input por enquanto
isDateVerifica se é uma DATA valida.
Campo input do tipo TEXT/DATE
Obs.: caso o input for do tipo text, o formato de envio deve ser 01/01/2020.
isZipCodeVerifica se é um CEP valido.
Se vier com mascara, a função já remove.
ex: 17512090
Obs.: apenas verifica a quantidade de caracteres do input
isPhoneVerifica se é um TELEFONE valido.
ex: XX XXXX-XXXX
Se vier com mascara, a função já remove.
Valida números repetidos ex: (33 3333-3333)
isCellphoneVerifica se é um CELLPHONE valido.
ex: XX XXXXX-XXXX
Se vier com mascara, a função já remove.
Valida números repetidos ex: (33 99999-9999).
isOfAgeVerifica se é menor de idade.
Campo input do tipo TEXT/DATE
isFullNameVerifica quantide de palavras
Campo input do tipo TEXT
Exemplo validado: (ana Julia) 2 palavras retorna true
Exemplo não validado: (Ana) 1 palavras retorna false

License

MIT

1.0.39

4 years ago

1.0.40

4 years ago

1.0.38

4 years ago

1.0.37

4 years ago

1.0.36

4 years ago

1.0.35

4 years ago

1.0.34

4 years ago

1.0.33

4 years ago

1.0.32

4 years ago

1.0.31

4 years ago

1.0.30

4 years ago

1.0.29

4 years ago

1.0.28

4 years ago

1.0.27

4 years ago

1.0.26

4 years ago

1.0.25

4 years ago

1.0.24

4 years ago

1.0.23

4 years ago

1.0.22

4 years ago

1.0.18

4 years ago

1.0.21

4 years ago

1.0.20

4 years ago

1.0.17

4 years ago

1.0.16

4 years ago

1.0.15

4 years ago

1.0.14

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago