Skip to content

Instantly share code, notes, and snippets.

@danlynn
Created January 31, 2014 20:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danlynn/8742252 to your computer and use it in GitHub Desktop.
Save danlynn/8742252 to your computer and use it in GitHub Desktop.
/**
* Takes two version numbers with multiple decimal points (e.g. '7.0.3') and
* returns true if the first one is greater than or equal to the second.
*
* @param v1 version that should be greater than or equal
* @param v2 version that should be less than or equal
* @returns {boolean} true if 'v1' >= 'v2'
*/
function is_version_gte(v1, v2) {
var v1_parts = (v1 || 0).toString().split('.').map(function(s) {return parseInt(s)});
var v2_parts = (v2 || 0).toString().split('.').map(function(s) {return parseInt(s)});
for (var i = 0; i < v1_parts.length || i < v2_parts.length; ++i) {
v1_parts[i] = v1_parts[i] || 0;
v2_parts[i] = v2_parts[i] || 0;
if (v1_parts[i] != v2_parts[i])
return v1_parts[i] > v2_parts[i];
}
return true; // all equal
}
/**
* Takes two version numbers with multiple decimal points (e.g. 7.0.3) and
* returns true if the first one is greater than or equal to the second.
* @param v1
* @param v2
* @returns {boolean}
*/
function is_version_gte(v1, v2) {
v1 = v1 || 0;
v2 = v2 || 0;
var v1 = v1.toString();
var v2 = v2.toString();
var v1_parts = v1.split('.');
var v2_parts = v2.split('.');
for (var i = 0; i < v1_parts.length; ++i) {
if (v2_parts.length == i) {
return true;
}
if (v1_parts[i] == v2_parts[i]) {
continue;
}
else if (v1_parts[i] > v2_parts[i]) {
return true;
}
else {
return false;
}
}
if (v1_parts.length != v2_parts.length) {
return false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment