Contribua

Doação

sábado, 16 de dezembro de 2017

Validação de tipos com Java e Regex fazendo normalização para rertirar acentos.

Validação de campos  de Textfields é sempre complicado para quem esta começando,
esta dica cobre  a maioria de tipos de campos pra validação, neste exemplo utilizamos duas classes uma que ira pegar  o conteúdo do text field e passar para outra Matches, que fara a comparação.

E muito interessante manter esse esquema principalmente se você irá utilizar varias classes para serem analisadas, assim se economiza muitas linhas de código;


Esta Classe  recebe as String passadas pela  Classe de Validação e retorna um boleano.

import java.text.Normalizer;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author  Edson Pessotti
 */
public class Matches {
                 public boolean matchesOnlyNumber(String text) {
    return text.matches("[0123456789]+");
}
          public boolean matchesOnlyText(String text) {
            
        CharSequence cs = new StringBuilder(text);
        text= Normalizer.normalize(cs, Normalizer.Form.NFKD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
   
    return text.matches("[Ww a-zA-Z]+"); /
}
          public boolean matchesOnlyAlfa(String text) {
        CharSequence cs = new StringBuilder(text);
        text= Normalizer.normalize(cs, Normalizer.Form.NFKD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
                                                          
    return text.matches("[wdWD a-zA-Z0-9/_-]+");
}
         public boolean matchesOnlyValor(String text) {
    return text.matches("[\"^[-+]?\\d{1,3}(\\.\\d{3})*,\\d{2}$\"]+");
 
}
       public boolean matchesOnlyCPF(String text) {
    return text.matches("[/(^\\d{3}\\.\\d{3}\\.\\d{3}\\-\\d{2}$)|(^\\d{2}\\.\\d{3}\\.\\d{3}\\/\\d{4}\\-\\d{2}$)/ ]+"); //Passa para o método matches a regex

}
    
   
}/////////
//////////
Esta parte do código deve estar  na classe de validação, cada qual chama o metodo matches
corrrespondente ao seu tipo. recebendo um boleno caso não bata com o formato exibe mensagem
de  erro. suporta os principais  tipos para validação, caso você tenha uma sugestão melhor  e só deixar nos comentários.


                      if(!cli.matchesOnlyAlfa(tcep.getText())) {
    JOptionPane.showMessageDialog(null, "Você não pode inserir Letras no CEP.");
}
 
 if(!cli.matchesOnlyAlfa(tnome.getText())) {
    JOptionPane.showMessageDialog(null, "Você não pode inserir números no nome.");
}
        if(!cli.matchesOnlyAlfa(tinsc.getText())) {
    JOptionPane.showMessageDialog(null, "Você não pode inserir Letras na Iscrição Estadual.");
}
               if(!cli.matchesOnlyAlfa(tcnpj.getText())) {
    JOptionPane.showMessageDialog(null, "Você não pode inserir Letras no CNPJ/CPF.");
}
                      if(!cli.matchesOnlyAlfa(tfone.getText())) {
    JOptionPane.showMessageDialog(null, "Você não pode inserir Letras no Telefone.");
}
 if(!cli.matchesOnlyText(tramo.getText())) {
    JOptionPane.showMessageDialog(null, "Você não pode inserir números no ramo.");
}
 if(!cli.matchesOnlyText(tcidade.getText())) {
    JOptionPane.showMessageDialog(null, "Você não pode inserir números no Cidade.");
}
 if(!cli.matchesOnlyText(testado.getText())) {
    JOptionPane.showMessageDialog(null, "Você não pode inserir números no Estado.");
}
 if(tendereco.getText().isEmpty()) {
    JOptionPane.showMessageDialog(null, "Ops!! Vamos Preencher o Endereço  Gente.");
}
 if(!cli.matchesOnlyAlfa(tbairro.getText())) {
    JOptionPane.showMessageDialog(null, "Você não pode inserir números no Bairro.");
}

Até A próxima.
Edson pessotti

Programa exempo para consulta em bd Mysql com programa C

#include<stdio.h> #include<mysql/mysql.h> # ...