2

I need to validate input

  • can be an integer or float value like (5 or 5.20)
  • can be an integer with percentage sign (5%)
  • can be a float with percentage sign (5.20%)

how can I validate using jQuery expression for valid integer or float with percentage sign ?

Currently I am using this expression but it is not working for me.

num = input.toString();

if(num !="^100(\.(0){0,2})?$|^([1-9]?[0-9])(\.(\d{0,2}))?\%$") { 
   return false;
}
Umair Afzal
  • 4,947
  • 5
  • 25
  • 50
  • != does not compare to a regex. See https://stackoverflow.com/questions/6603015/check-whether-a-string-matches-a-regex – Bernhard Oct 12 '17 at 08:29

1 Answers1

-1

Here is a small demo that checks for valid integer, float and percentages:

$(".number").on('keyup', function() {
  var numberEntered = $(this).val();
  if (numberEntered.indexOf("%") >= 0) {
    var count = (numberEntered.match(/%/g) || []).length;
    if (count == 1 && numberEntered.match(/%$/)) {
      var getNumber = numberEntered.replace('%', '');
      if (!isNaN(getNumber) && $.trim(getNumber) != '') {
        // valid number
      } else {
        console.log('Invalid number...');
      }
    } else {
      console.log('Invalid number...');
    }
  } else if (!isNaN(numberEntered)) {
    // valid number
  } else {
    console.log('Invalid number...');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' class='number' />
Milan Chheda
  • 8,159
  • 3
  • 20
  • 35