function checkNumber(object_value) { /* Returns true if value is a number or is NULL otherwise returns false */ if (object_value.length == 0) return true; /* Returns true if value is a number defined as having an optional leading + or -. having at most 1 decimal point. otherwise containing only the characters 0-9. */ var start_format = " .+-0123456789"; var number_format = " .0123456789"; var check_char; var decimal = false; var trailing_blank = false; var digits = false; /* The first character can be + - . blank or a digit. */ check_char = start_format.indexOf(object_value.charAt(0)); /* Was it a decimal? */ if (check_char == 1) decimal = true; else if (check_char < 1) return false; /* Remaining characters can be only . or a digit, but only one decimal. */ for (var i = 1; i < object_value.length; i++) { check_char = number_format.indexOf(object_value.charAt(i)); if (check_char < 0) return false; else if (check_char == 1) { if (decimal) /* Second decimal. */ return false; else decimal = true; } else if (check_char == 0) { if (decimal || digits) trailing_blank = true; /* ignore leading blanks */ } else if (trailing_blank) return false; else digits = true; } /* All tests passed, so... */ return true }