我正在尝试检查当前的jquery版本是否大于1.8.3但parseInt($.fn.jquery)
只输出一位数。
答案 0 :(得分:3)
不确定它效率最高但似乎有效...取出版本字符串,将其拆分为令牌并测试每个令牌,如下所示
var vernums = $.fn.jquery.split('.');
if (parseInt(vernums[0]) > 0 && parseInt(vernums[1]) >= 8 && parseInt(vernums[2]) > 3) {
// Do stuff here
}
答案 1 :(得分:2)
略短的“单线”测试,有效期至9.99.99版:
$.fn.jquery.replace(/\.(\d)/g,".0$1").replace(/\.0(\d{2})/g,".$1") > "1.08.03"
答案 2 :(得分:1)
这是一种简单的“单线”方法。我用前导零填充数字。:
if(jQuery.fn.jquery.split('.')
.map(function(i){return('0'+i).slice(-2)})
.join('.') > '01.08.03')
{
alert('yes');
}
else
{
alert('no');
}
答案 3 :(得分:1)
我使用此剪辑:
/**
* Checks if versionA is bigger, lower or equal versionB
* It checks only pattern like 1.8.2 or 1.11.0
* Major version, Minor version, patch release
* @param strVersionA a version to compare
* @param strVersionB the other version to compare
* @returns {*} 1 if versionA is bigger than versionB, -1 if versionA is lower than versionB and 0 if both versions are equal
* false if nothing worked
*/
function checkVersion(strVersionA, strVersionB){
var arrVersionA = strVersionA.split('.');
var arrVersionB = strVersionB.split('.');
var intVersionA = (100000000 * parseInt(arrVersionA[0])) + (1000000 * parseInt(arrVersionA[1])) + (10000 * parseInt(arrVersionA[2]));
var intVersionB = (100000000 * parseInt(arrVersionB[0])) + (1000000 * parseInt(arrVersionB[1])) + (10000 * parseInt(arrVersionB[2]));
if (intVersionA > intVersionB) {
return 1;
}else if(intVersionA < intVersionB){
return -1;
}else{
return 0;
}
return false;
}
所以你可以像这样使用它:
var blnIsNewJQuery = checkVersion($.fn.jquery,"1.8.3")>0?true:false;
你必须密切注意9.99.99之后的版本。代码也可以扩展为11.11.11.11之类的模式。 还需要检查数组值是否为有效整数。您还可以进一步检查以下符号:11.11.11.RC1
希望它有所帮助,对不起我的英语