Number Formatting

Allows for Regular Number Formatting as well as European Formatting

by Darth Vader

HTML

<input type="text" id="test" name="inputField" />

JavaScript

var europeanFormat = /^\d{1,3}(\.\d{3})*(\,\d+)*$/;
var regularFormat = /^\d{1,3}(\,\d{3})*(\.\d+)*$/;
var floatFormat = /^\d+(\.\d)*$/

function isValidNumber(number) {
  var isEuropeanFormat = europeanFormat.test(number)
  var isRegularFormat = regularFormat.test(number)
  var isNumber = floatFormat.test(number) && isNumeric(number)
  
  var isValidFormat = isEuropeanFormat || isRegularFormat || isNumber;
  
  return isValidFormat;
}

function isNumeric(number) {
 return !isNaN(parseFloat(number)) && isFinite(number);
}

$(document).ready(function() {
   jQuery('#test').on('input', function() {
      console.log(isValidNumber($("#test").val()))
  });
  
  $('#test').keypress(function(event){
        var input = String.fromCharCode(event.which);
        var isValid = !isNaN(input) || input == "." || input == ",";
        
        //console.log("Is Valid: ", isValid, isNaN(input));
        if(!isValid) {
           event.preventDefault();
        }
   });
});