Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera,
Estou utilizando a função abaixo, para criar uma mascara que transforma o valor digitado em R$ (moeda), porem preciso que o valor digitado possa ser posito ou negativo.
Se alguém souber como alterar a função para aceitar os dois valores, ficarei muito grato.
function moeda(z) {
v = z.value;
v=v.replace(/\D/g,"") //permite digitar apenas número
v=v.replace(/[0-9]{12}/,"inválido") //limita pra máximo 999.999.999,99
v=v.replace(/(\d{1})(\d{8})$/,"$1.$2") //coloca ponto antes dos últimos 8 digitos
v=v.replace(/(\d{1})(\d{5})$/,"$1.$2") //coloca ponto antes dos últimos 5 digitos
v=v.replace(/(\d{1})(\d{1,2})$/,"$1,$2") //coloca virgula antes dos últimos 2 digitos
z.value = v;
}
Flamaury
A função nativa do PHP só resolve quando você que exibir o resultado de uma consulta.
No meu caso eu utilizo em javascript pois a alteração do valor digitado pelo usuário em MOEDA é feita no momento da entrada dos dados (digitação).
Meu unico problema é que não sei como alterar a funão para que alem de aceitar apenas numeros (digitos), a função passe a aceitar o sinal de menos (-) na primeira possição (lado esquerdo dos digitos).
Se alguem tiver alguma outra sugestão, agradeço.
Flamaury
var valor = document.form_desejado.meu_campo_de_valor.value;
if(valor.match(/^(-)?[0-9]+$/)){
// Ok, somente numeros (positivo ou negativo)
} else {
// ops, outros caracteres encontrados
}
@braços e fique com Deus!
Rapaz, pra formatar como moeda usa a função nativa do PHP:
http://php.net/manual/pt_BR/function.number-format.php