Programando#1 – Validar padrão usando Regular Expression

 

 

Bom pessoal, como eu expliquei eu sou Analista de Sistemas e programo também.

Vira e mexe vocês poderão acompanhar aqui alguns códigos fonte que resolveram alguns problemas meus e outros que eu mesmo criei como é o código abaixo.

Bom, o meu problema era o seguinte. Eu tinha um valor retornado do banco de dados que deveria ser adotado como padrão e seria o modelo que vai ser comparado com o valor que o usuário digita em determinada caixa de texto.

Bom, rodei a internet e não encontrei algo que fosse 100% compatível com o que eu precisava.

Acertei a mão e consegui o resultado esperado, usando Expressão Regular (Regular Expression) e segue abaixo o código.

Para rodar, basta salvar o código fonte abaixo no bloco de notas, salvar como <nome que você quiser>.html e abrir o arquivo no Internet Explorer!

Qualquer dúvida podem postar que eu respondo asap.

Grande abraço para todos.

d-_-b  B.G. The Prince Of Rap – This Beat Is Hot d-_-b

//INÍCIO DO CÓDIGO

<html>
<head>
<title>Valida Padrão</title>
<script language=’javascript’>
function ValidaPadrao(){

//Declaracao de variáveis
var padrao;
var texto;
var resultado;
var i;
var caracterPadrao;
var padraoMontado;
var padraoNumerico;
var padraoAlpha;

//Recebe o texto que se quer validar.
texto = document.form1.texto.value;

//Recebe o padrão que se quer usar para validar do texto
padrao = document.form1.padrao.value;

//Divide o padrão, letra por letra para que se faça a comparação
caracterPadrao = padrao.split(”);

//Início da montagem do padrão
padraoMontado = “^(“;

//Exemplo de padrão já formado
//padrao = new RegExp(“^([0-9][0-9][0-9][A-Z]\\45)”,”g”);

//Informa qual será o padrão númerico que é aceito
padraoNumerico = /[0-9]/;

//Informa qual será o padrão de caracter que é aceito
padraoAlpha = /[A-Z]/;

//Varre o vetor formado no split
for (i=0;i<padrao.length;i++){
//Testa se o caracter é numérico
if(padraoNumerico.test(caracterPadrao[i])){
//Inclui no padrão a busca por elementos numéricos
padraoMontado = padraoMontado+”[0-9]“;
}
else{
//Testa se o caracter é string
if(padraoAlpha.test(caracterPadrao[i])){
//Inclui no padrão a busca por elementos string
padraoMontado = padraoMontado+”[A-Z]“;
}
//Caso não seja numérico ou string, é caracter especial, como por exemplo ; – /
else{
//Inclui no padrão a busca por caracteres especiais
padraoMontado = padraoMontado+”\\”+caracterPadrao[i];
}
}
}

//Finaliza a string que será o padrão desejado.
padraoMontado = padraoMontado+”)”;

//Mostra o padrão que deverá ser o validador do texto
alert (“-> Padrão Montado”+padraoMontado);

//Executa a procura de padrão com o que foi informado
resultado = texto.search(padraoMontado);

//Mostra o texto que deverá ser validado conforme o padrão
alert (“-> Texto Digirtado “+texto);

//Mostra o resultado da consulta
alert (“-> Resultado “+resultado);

//Caso o resultado seja -1, o campo texto informado não obedece o padrão definido
if(resultado==-1){
alert(“CAMPO TEXTO NÃO OBEDECEU O PADRÃO”);
}
//Caso contrário, o campo texto obedece o padrão definido e está correto
else{
alert(“CAMPO TEXTO CORRETO”);
}

// vale um aviso, o padrão é case sensitive!

}
</script>
</head>
<body>
<form name=”form1″>
<table>
<tr>
<td>Padrão:</td>
<td><input type=”text” name=”padrao” value=”XXXX-9999999″></td>
</tr>
<tr>
<td>Texto:</td>
<td><input type=”text” name=”texto”></td>
</tr>
</table>
<input type=”button” name=”btTestar” value=”Testar!” onclick=”ValidaPadrao()”>
<br>
Legenda:
<br>
X – Caracter 9 – Número
</form>
</body>
</html>

//FIM DO CÓDIGO

Deixe uma resposta