javascript - Hur man tillåter endast en decimalpunkt för inmatning av typ nummer i ionic 1


Jag använder ett inmatningsfält av typen nummer som tillåter flera decimalpunkter, så jag har försökt använda regex för att inte tillåta mer än en decimalpunkt, men även efter att ha använt regex stöter jag på samma problem. Kan någon berätta hur man tillåter endast en decimalpunkt i ett inmatningsfält av typen nummer i 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 i funktion:

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

Svar #1

Prova detta Regex:

^\d*\.?\d+$

Klicka för demo

Förklaring:

  • ^ - Början på strängen
  • \d*- 0+ siffror
  • \.?- 0 eller 1 decimaltal
  • \d+- 1+ siffror (vilket gör det obligatoriskt att ha minst en siffra efter decimalpunkten, om den är närvarande)
  • $- Slutet på strängen

UTDATA:

Svar #2

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