Olá Galera,

Talvez alguém possa me ajudar com um pequeno problema.



Possuo um texbox, que se refere ao nome completo de uma pessoa.



Por exemplo:

Exemplo Nomes Válido: FULANO RODRIGUES SILVA - Este pode

Nome Invalido: FULANO R. SILVA - Este não pode.



Alguém saberia como fazer?



O projeto está em webforms.



Obrigado

Exibições: 409

Respostas a este tópico

Cara eu acho um pouco complicado isso pois nome  uma coisa muito aleatorio.

Mas para evitar o ponto por exemplo da para usar um campo mask.

Agora tentar evitar por validacao de letra acho dificil pois existem nomes como "Ana" e sobrenomes como "Ng" entao e complicado.

Olá Gabriel,

Você tem razão, pois existem muitas variações de nomes.

Mas a princípio está atendendo o que eu preciso aqui.

Veja como eu fiz:

private bool ValidarNome(string[] Nomes)
{
bool retorno = true;

for (int i = 0; i < Nomes.Count(); i++)
{
if (Nomes[i].Length < 2 && Nomes[i] != "e")
return false;
if (Nomes[i].Contains("."))
return false;
}

return retorno;
}

Obrigado e até mais!

Opa entao cara me fala uma coisa

O nome vem de um campo text? se sim... Pq esta recebendo um array de nome?

No caso de usar array pq nao tenta com foreach em vez do for?

Ele está usando como array porque está dando um Split no texto antes de usar este método.

Então Gabriel,

O meu campo texto recebe o nome completo do cara, na hora de chamar o método e passar o parâmetro, eu preciso passar os nomes separados, "fulano" "da" "silva", por isso passo utilizo array, para ver cada um dos nomes.

Na verdade utilizei o for pq me atendeu também, mas também poderia utilizar o foreach.

Valeu man!!
Abs

Porque o  Nomes[i] != "e" ?

Cleilton Silva disse:

Olá Gabriel,

Você tem razão, pois existem muitas variações de nomes.

Mas a princípio está atendendo o que eu preciso aqui.

Veja como eu fiz:

private bool ValidarNome(string[] Nomes)
{
bool retorno = true;

for (int i = 0; i < Nomes.Count(); i++)
{
if (Nomes[i].Length < 2 && Nomes[i] != "e")
return false;
if (Nomes[i].Contains("."))
return false;
}

return retorno;
}

Obrigado e até mais!
Porque o "e" irá funcionar como um conectivo.
Exemplo: Lucas Silva e Silva; Paulo Vieira e Souza.

vlw

Eu usaria Expressão Regular. Veja Exemplo simples, faz o que você quer:

<asp:TextBox ID="nomeTextbox" runat="server" Width="277px"></asp:TextBox>
        
<asp:RegularExpressionValidator ID="nomeExpReg" runat="server"     
                                    ErrorMessage="Não é permitido abreviar nomes."
                                    ControlToValidate="nomeTextbox"     
                                    ValidationExpression="^[^.]*$"/>

Assim, o campo nomeTextbnox não aceita pontos. A expressão regular acima pode ser melhorada para uma validação mais precisa. Do jeito que está acima não precisa codificar nada no código (code behind).

Para mais detalhes:

http://www.regular-expressions.info

Anderson

RSS

© 2018   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço