version parsing

by gwatts

HTML

<input id="num1">
<input id="num2">
<br> <span id="result1"></span>
 <span id="compare"></span>
 <span id="result2"></span>

JavaScript

// parse a version with non-digits (don't use)
function parseVersion1(v) {
    var result = '';
    v = v.split('.');
    for (var i = 0; i < v.length; i++) {
        n = parseInt(v[i], 10).toString();
        if (n == v[i]) {
            result += new Array(4 - n.length + 1).join('0') + n;
        } else {
            result += '0000' + v[i];
        }
    }
    return result;
}

// Parse a version with only digits
function parseVersion2(v) {
    var result = '';
    v = v.split('.');
    for (var i = 0; i < v.length; i++) {
        n = parseInt(v[i], 10).toString();
        result += new Array(4 - n.length + 1).join('0') + n;
    }
    return result;
}

$(function () {
    var changed = function () {
        var val1 = parseVersion2($('#num1').val());
        var val2 = parseVersion2($('#num2').val());

        $('#result1').text(val1);
        $('#result2').text(val2);
        if (val1 == val2) {
            $("#compare").text('equals');
        } else {
            $('#compare').text(val1 < val2 ? 'is less than' : 'is greater than');
        }
    };
    $('#num1').change(changed);
    $('#num2').change(changed);
});

console.log(parseVersion('1.2.3'));