Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

AprendizJS

Aceitar somente letras e números. ER

Recommended Posts

Tenho a segte dúvida.

 

Tenho o código abaixo:

 

!ereg("([a-zA-Z]|[0-9])", $login) ? "caracteres inválidos" : "ok";

e com ele quero aceitar somente letras de a à z (tanto minúsculo quanto maiúsculo) e números de 0,9

 

mas ta dando o segte erro:

 

Se coloco por exemplo isto: $, o scrit informa a mensage de caracter inválido, mas se coloco tio: $pao ele fala que ta ok, mas não deveria aceitar pois contém o $.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Engraçado, tente testar essa sua ER no visual-regexp...Ela vai casar os caracteres normais, e vai dispensar apenas o $...mais casa o resto, mesmo estando com $...Bom, vou ver se consigo alguma coisa pra você, depois eu posto ai....flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu epyllion, funcion corretamente.

 

Agora, eu gostaria de entender o seguinte:

 

por que preg_match e não ereg?

 

Qual a finalidade do @ e o @i no final?

 

Se coloco isto ^A-Z significa que aceitará tanto maiúsculo quanto minúsculo?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

preg_match é a mesma coisa só que uma função mais rapida e recomendada para ser usada

 

o proprio manual recomenda usar preg no lugar do ereg

 

o @ ele usou como delimitador, voce pode usar qualquer caracter como delimitador mas só tome cuidado para nao conflitar com os proprios coringas

 

o i é para aceitar maiusculas e minusculas

 

^ é inicio e $ fim

 

[^] esta negando o que tiver dentro

leia esse tuto que você vai entender tudo

 

http://guia-er.sourceforge.net/guia-er.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que o Alisson Rodrigues disse ta certo sim, só faltou finalizar

pois você quer casar [a-z0-9] nao precisa separar usando | significa ou

 

quando monta uma er precisa definila corretamente no caso precisa dizer que ela precisa casar com a er que você fez e descrever melhor se vai poder ter espaços ou quantos caracteres você pedir

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hehehe, desculpa, do jeito que eu disse tá + ou - certo, mas eu esqueci de um detalhe, é que desse jeito caso encontre apenas um desses caracteres (letra ou número) já dá como certo independente se tem outros caracteres estranhos, então daria certo fazendo: ^([a-zA-Z0-9]*)$

Aí sim vai pegar a variável inteira, do começo (^) até o fim ($) hehehe. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Do jeito anterior só iria analisar um caracter por vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

preg_match é a mesma coisa só que uma função mais rapida e recomendada para ser usadao proprio manual recomenda usar preg no lugar do erego @ ele usou como delimitador, voce pode usar qualquer caracter como delimitador mas só tome cuidado para nao conflitar com os proprios coringaso i é para aceitar maiusculas e minusculas^ é inicio e $ fim[^] esta negando o que tiver dentroleia esse tuto que você vai entender tudohttp://guia-er.sourceforge.net/guia-er.html

Fabyo, ótima explicação. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.