4

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

4

4 回答 4

3

不确定它是最有效的,但似乎有效...获取版本字符串,将其拆分为标记并测试每个标记,如下所示

var vernums = $.fn.jquery.split('.');
if (parseInt(vernums[0]) > 0 && parseInt(vernums[1]) >= 8 && parseInt(vernums[2]) > 3) {
  // Do stuff here
}
于 2013-09-26T18:04:52.897 回答
2

一个稍短的“单线”测试,有效期至 9.99.99 版:

$.fn.jquery.replace(/\.(\d)/g,".0$1").replace(/\.0(\d{2})/g,".$1") > "1.08.03"
于 2016-03-02T19:59:38.040 回答
1

这是一种简单的“单线”方法。我用前导零填充数字。:

if(jQuery.fn.jquery.split('.')
    .map(function(i){return('0'+i).slice(-2)})
    .join('.') > '01.08.03')
{
    alert('yes');
}
else
{
    alert('no');
}
于 2014-04-02T18:29:35.207 回答
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

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

于 2014-12-23T14:24:46.970 回答