检查JQuery版本是否大于1.8.3?

时间:2013-09-26 17:54:27

标签: jquery integer comparison string-conversion

我正在尝试检查当前的jquery版本是否大于1.8.3但parseInt($.fn.jquery)只输出一位数。

4 个答案:

答案 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

希望它有所帮助,对不起我的英语