Ir para conteúdo

POWERED BY:

Arquivado

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

ment0r

Expressão regular para número decimal

Recommended Posts

Boa tarde a todos,

 

Estou tendo um probleminha no meu novo sistema. Eu gostaria que no campo "preço" o usuário digitasse somente números decimais com 2 casas depois da virgula, exemplo: 20,05 - 15,56 - 5,00 e por ai vai.

Usei essa expressão ^\d*[,]\d{2}$ e a mesma funciona no (http://tools.lymas.com.br/regexp_br.php#), mas no sistema não, sempre da mensagem de erro. Deixando claro que eu uso uma função para padronizar os dados do formulário, abaixo trecho do função:

if($preco == "")
{
print'
<script type="text/javascript">
	alert ("Por favor, digite o preço");
</script>
';
return false;
}
else
{
if(!eregi("^\d*[,]\d{2}$",$preco))
{
	print'
	<script type="text/javascript">
		alert ("Por favor, digite corretamente o preço do produto");
	</script>
	';
	return false;
}
}

Se no final todos os dados passarem pelo ifs, retorna true.

Alguém saberia o porque disso, o que eu estou fazendo de errado, as outras expressões funcionam direitinho. Fico esperando a ajuda de algum amigo e desde já muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eregi se tornou uma função obsoleta no php 5.3 troque por preg_match ou preg_replace

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela ajuda shini.

 

É que eu ainda estou usando o PHP 5.2.1 nesse projeto. E lembrando que nas outras verificações da minha função o eregi funciona.

 

Mas valew, eu não sabia que o eregi estava obsoleto.

 

Evite usar as funções ereg e eregi, elas são obsoletas e piores em performance. Use sempre a função preg_match.

 

Eu não testei o código aqui, mas tente assim:

 

if (!preg_match('/^[0-9]+,[0-9]{2}$/', $preco)) {

Deu certo Leozitho, realmente a função preg_match é melhor que a eregi, pois quando testei a mesma expressão que você me passou com eregi, não aceitou rsrs.

 

Muito obrigado pela ajuda irmão, vlw! Resolvido.

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.