Neste post vamos ver como explorar uma string e verificar se existe uma seqüencia de caracteres iguais dentro da string. Utilizaremos a tabela ASCII para verificar letras e números, se você precisar verificar mais caracteres basta consultar a tabela e colocar o número referente na condição.
Neste exemplo vou verificar se existe na string uma seqüencia quatro(4) números iguais e o mesmo para uma seqüencia de três(3) letras, pois acho que em números de documentos ou nomes isto não pode acontecer.
public static bool ValidaTexto(this string txt) {
bool flag = true;
if (txt.Length < 3)
{
flag = false;
}
else
{
int contLetras = 0;
int contNumeros = 0;
int tmp = (int)txt.ToCharArray()[0];
foreach (char c in txt.ToCharArray())
{
if (((int)c < 127 && (int)c >= 65))
{
if (tmp == (int)c)
{
contLetras++;
}
if (contLetras >= 3) { break; }
tmp = (int)c;
}
}
//inicia novamente o armazenador
tmp = (int)txt.ToCharArray()[0];
foreach (char c in txt.ToCharArray())
{
if (((int)c < 57 && (int)c >= 48))
{
if (tmp == (int)c)
{
contNumeros++;
}
if (contNumeros >= 4) { break; }
tmp = (int)c;
}
}
if (contLetras >= 3 || contNumeros >= 4)
{
flag = false;
}
}
return flag;
}
Utilizando função:
using "namespace onde esta o seu metodo(funcão)"
if(txbCampo.Texte.ValidaTexto()){
...
}
Comments