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();
}
});
});