ment0r 1 Denunciar post Postado Janeiro 5, 2012 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
shini 318 Denunciar post Postado Janeiro 5, 2012 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
Leozitho 81 Denunciar post Postado Janeiro 5, 2012 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)) { Compartilhar este post Link para o post Compartilhar em outros sites
ment0r 1 Denunciar post Postado Janeiro 5, 2012 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