the*_*dow 9 javascript comparison
有没有人有代码来比较JavaScript中的两个版本号?我只想要简单的版本比较(例如"1.0"vs "1.5.6"),它应该与数字或字符串一起使用.它可以忽略尾随的beta标识符"1.5.6b4",但可以预期字符串格式正确.该函数应该返回一个有符号整数,就像普通的cmp函数一样.
function cmpVersion(a, b)
return less than one if a < b
return 0 if a == b
return greater than one if a > b
Run Code Online (Sandbox Code Playgroud)
我有一个答案,但会选择一个比我自己更好或更优雅的解决方案.
(我用它来比较jQuery.browser.version数字,但答案会更广泛适用)
the*_*dow 14
function cmpVersion(a, b) {
var i, cmp, len;
a = (a + '').split('.');
b = (b + '').split('.');
len = Math.max(a.length, b.length);
for( i = 0; i < len; i++ ) {
if( a[i] === undefined ) {
a[i] = '0';
}
if( b[i] === undefined ) {
b[i] = '0';
}
cmp = parseInt(a[i], 10) - parseInt(b[i], 10);
if( cmp !== 0 ) {
return (cmp < 0 ? -1 : 1);
}
}
return 0;
}
function gteVersion(a, b) {
return cmpVersion(a, b) >= 0;
}
function ltVersion(a, b) {
return cmpVersion(a, b) < 0;
}
Run Code Online (Sandbox Code Playgroud)
这个函数处理:
cmpVersion("1.0", 1)返回0)alpha,b,pre4等