Pesquisa de site

javascript - Como permitir apenas um ponto decimal para entrada do tipo número no ionic 1


Estou usando um input do tipo número que permite vários pontos decimais, então tentei usar regex para não permitir mais de um ponto decimal, mas mesmo após usar a regex ainda estou enfrentando o mesmo problema. Alguém pode me dizer como permitir apenas um ponto decimal em um input do tipo número no Ionic1?

Html :

<input stopccp focus-me class="inputContainer trade_input" type="number" name="" ng-model="vm.total_amount[$index]" ng-change="vm.onTotalCost()" limit-char limit="5" ng-keyup="vm.decimalcheck(vm.total_amount[$index])"  >

Regex na função:

function decimalcheck (element) {
  $log.log('decimalcheck got called', element);
  var regex = /\d*\.?\d?/g;
  return regex.exec(element);
}

Resposta #1

Tente este Regex:

^\d*\.?\d+$

Clique para Demo

Explicação:

  • ^ - Início da string
  • \d*- 0 ou mais dígitos
  • \.?- 0 ou 1 ponto decimal
  • \d+- 1+ dígitos (tornando assim obrigatório ter pelo menos um dígito após o ponto decimal, se ele estiver presente)
  • $- Fim da String

SAÍDA:

Resposta #2

<input type="text" pattern="\d+\.?\d?(?!\d)" />