VALIDAR LETRAS E NUMEROS ?

ULTRASOFT 14/02/2012 19:29:29
#394747
Boa Noite

Gostaria de saber como eu valido um campo que tenha que ter letras e numeros nao pode ser so letras e nem so numeros
[Ô]Obs e um campo de senha[Ô]

Obrigado Pela Atencao
SAMUKA 14/02/2012 20:40:30
#394754
Olá ULTRASOFT, segue uma método criado as pressas .... faça alguns testes pra ver se funcionou

 
bool SenhaForte(string senha)
{
bool hasNumber = false;
bool hasLetter = false;

for (int i = 0; i <= 9; i++)
{
if ( senha.Contains( i.ToString() ) )
{
hasNumber = true;
break;
}
}

string senhaUpper = senha.ToUpper(); //Converti pra maiusculo para facilitar

for (int i = [ô]A[ô]; i <= [ô]Z[ô]; i++)
{
if (senhaUpper.Contains(i.ToString()))
{
hasLetter = true;
break;
}
}

if ( hasNumber && hasLetter)
return true;
else
return false;
}
PHOENIX209E 14/02/2012 21:15:44
#394757
Eu aconselho voce a usar expressoes regulares...

Namespace System.Text.RegularExpression

Apneas Letras:
[a-zA-Z]+

Apneas Numeros:
[0-9]+

TECLA 14/02/2012 21:19:30
#394758
Segue um exemplo com Regex.

using System.Text.RegularExpressions;
public static bool IsItNumber(string inputvalue)
{
Regex isnumber = new Regex([Ô][^0-9][Ô]);
return !isnumber.IsMatch(inputvalue);
}
SAMUKA 14/02/2012 21:28:45
#394760
Resposta escolhida
Ola PHOENIX209E

No código acima tem um erro:
 if (senhaUpper.Contains(i.ToString()))  

Onde vc encontra o código acima, substitua por:
  if (senhaUpper.Contains( ((char)i).ToString() ) ) 



Fuçando mais um pouco, cheguei num código mais curto e simples de entender:

private bool SenhaForte(string senha)
{
bool hasNumber = false;
bool hasLetter = false;

for (int i = 0; i < senha.Length; i++)
{
char x = senha[i];
if (char.IsLetter(x)) hasLetter = true;
if (char.IsNumber(x)) hasNumber = true;
}

if (hasNumber && hasLetter)
return true;
else
return false;
}
ULTRASOFT 14/02/2012 22:39:59
#394773
essa ultima funcionou certinho Samuka,

Obrigado
Tópico encerrado , respostas não são mais permitidas