Ir para conteúdo

POWERED BY:

Arquivado

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

Flamaury

Expressão regular para aceitar numero negativo

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

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.