Function to validate number – JS

html

<input type="text" onkeyup="validate_number(this)" onpaste="validate_number(this)"/>

script.js

function validate_number(el, float = false) {
    if(el.value.length != 0) {
        let value = el.value;
        let value_parts = [0];
        // change every ',' to '.'
        value = value.replace(/\,/g, '.');
        // delete every char except numbers and dots
        value = value.replace(/[^0-9\.]+/g, '');
        // lets check if someone wrote dot
        let dot = value[value.length - 1] == '.' && float ? '.' : '';
        if(value) {
            // value exist so lets divide it - for numbers with multiple dots
            value_parts = value.match(/[0-9]+/g);
            // first number should be parsed to int for situations like '023'
            value_parts[0] = parseInt(value_parts[0]);
        }
        if(value_parts.length == 1 || value_parts.length > 1 && !float) {
            el.value = value_parts[0] + dot;
        }
        else {
            el.value = value_parts[0] + '.' + value_parts[1];
        }
    }
}