Jump to content


Photo

Expressões Regulares Para Proteger Campo Do Nome


  • Faça o login para participar
3 replies to this topic

#1 lbento0077

lbento0077

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 13/08/2006, 21:18

Oi Pessoal

Neste momento estou de volta das expressões regulares para proteger a entrada de caracteres inexistentes em campo nome do meu formulário.

O código que estou a utilizar para proteger é o seguinte:

function verifica_nome($nome)
{
$exp_reg="([a-z,A-Z]*)([^0-9])";

if (ereg("$exp_reg", $nome) && strlen($nome) > 6)
{
return true;
}
else
{
return false;
}
}

Supostamente deveria só deixar escrever palavras compostas por caracteres de [a-z] e de [A-Z], mas o que está acontecendo é o seguinte, se eu escrever por exemplo:

ana78 luisa perei78 --> ele aceita e não deveria aceitar...se escrever uma cadeia de algarismos tipo 234627423 já não há problema, mas quando misturo algarismos com letras aí dá o berro...
Se alguém me puder ajudar agradecia muito... :)

#2 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 14/08/2006, 08:21

É que você tem 2 grupos, ou seja, satisfazendo 1 deles, retornará TRUE, no caso, existindo qualquer caracter.

$exp_reg="[a-Z]{6,}";

Com esse código, você nem precisaria do strlen (y)

Maaaaaas, eu também não sabia, mas existem nomes com "-"... Cada um mesmo B)
Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#3 lbento0077

lbento0077

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 16/08/2006, 13:21

É que você tem 2 grupos, ou seja, satisfazendo 1 deles, retornará TRUE, no caso, existindo qualquer caracter.

$exp_reg="[a-Z]{6,}";

Com esse código, você nem precisaria do strlen (y)

Maaaaaas, eu também não sabia, mas existem nomes com "-"... Cada um mesmo B)


obrigado pela ajuda, valeu...
já está funcionando... :)

#4 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 16/08/2006, 23:44

Usando vírgula dentro da lista, você estaria aceitando-a.

Os intervalos respeitam a ordem numérica da tabela ASCII, então basta tê-la em mãos para ver que um intervalo como A-z não pega somente as maiúsculas e minúsculas como era de se esperar.

Para sua comodidade, a tabela está no fim do guia, e nela podemos ver que A-z pega também "[\]^_`" e não pega os caracteres acentuados como "áéóõç". Infelizmente, não há um intervalo válido para pegarmos todos os caracteres acentuados de uma vez. Mas já já veremos a solução...

/!\ ATENÇÃO /!\ não use o intervalo A-z, prefira A-Za-z


Fonte: http://guia-er.sourc...guia-er-11.html
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq