_vina 0 Denunciar post Postado Julho 3, 2007 boa tarde, eu estou tentando verificar se o valor digitado foi somente numeros com ER. mais não estou conseguindo informar a ER como eu faço para mostrar somente numeros? function numeros($n){ if(!ereg('[0-9]',$n)){ echo "errado"; }else{ echo "certo"; }} $num = "22222"; echo numeros($num); Compartilhar este post Link para o post Compartilhar em outros sites
~micka 0 Denunciar post Postado Julho 3, 2007 Faltou o + na ER [0-9]+ flw Compartilhar este post Link para o post Compartilhar em outros sites
_vina 0 Denunciar post Postado Julho 3, 2007 assim deu certo if(ereg('[^0-9]',$n)){ echo "errado"; }else{ echo "certo"; } esta errado assim? vou testar com o + Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Julho 3, 2007 [editado] você fez corretamente aí em cima, mas o preg_match() é mais rápido que o ereg(). ;) [/editado] Essa função permitirá letras, desde que haja pelo menos um número. Para permitir somente números, faça isto: if (preg_match("/[^0-9]/i", $campo)) { echo "Digite apenas números"; } Abraços, Beraldo Compartilhar este post Link para o post Compartilhar em outros sites
_vina 0 Denunciar post Postado Julho 3, 2007 Beraldo opa obrigado. so não entendi a parte que você falo q ele ia aceitar letras no meio? tipo 22a22? seria isso? vlws Compartilhar este post Link para o post Compartilhar em outros sites
~micka 0 Denunciar post Postado Julho 3, 2007 é verdade, sempre me confundo com as ERs usando php :unsure: Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Julho 3, 2007 Beraldo opa obrigado. so não entendi a parte que você falo q ele ia aceitar letras no meio? tipo 22a22? seria isso? vlws O código que permitia letras era o primeiro que você postou. No seu segundos post, o scrript estava correto. Abraços, Beraldo Compartilhar este post Link para o post Compartilhar em outros sites
klonder 14 Denunciar post Postado Julho 3, 2007 Após ler esse tópico, resolvi adaptar um script que eu tinha em Java Script para PHP. Ele tem a função de verificar se em determinados campos existem somente os caracteres especificados pelo programador. Bom, esse script é apenas um exemplo, não sendo, portanto, a resposta do tópico. Resolvi colocar aqui porque o script permite avaliar qualquer tipo de expressão. Um exemplo seria avaliar se uma string contém apenas os caracteres: "234abc", ou "012345", ou "abcdef", ou quaisquer outras sequências que você especificar. O código já está todo comentado. Quem se interessar, poderá simplesmente copiá-lo e executá-lo em seu browser ou editor PHP. <?php//Criando uma função que irá avaliar $valores;Function verificar_numeros($valores) {//Definindo os caracteres válidos$validos = "0123456789";//Determinando quantos caracteres existem em $valores;$num_caracteres = strlen($valores);//Criando um ciclo para determinar letra por letra de $valores;for ($i=0; $i<$num_caracteres; $i++){ //Determinando a letra do ciclo atual; $letra = substr($valores,$i,1); if(strstr($validos,$letra)){ //Aqui você poderá criar uma variável controle, //Indicando se a função retornou números ou não; //Seja criativo! echo "Número encontrado na linha: ".$i.", letra: ".$letra."<br>"; }else{ //Aqui você poderá criar uma variável controle, //Indicando se a função retornou números ou não; //Seja criativo! echo "Não há número na linha: ".$i.", letra: ".$letra."<br>"; }}}//Variável que irá conter a expressão que será analisada; podendo ser//uma expressão proveniente de um post, ou de um BD;$expressao = "20 é maior que 10";verificar_numeros($expressao); //Testando a expressão;?> Agora, com relação às Expressões Regulares, quem quiser saber um pouco mais, tem um ótimo tutorial em português: http://guia-er.sourceforge.net/index.html Bom, é isso! Fica aí mais um exemplo! Abraços a todos! Compartilhar este post Link para o post Compartilhar em outros sites