我正在尝试检查当前的 jquery 版本是否大于 1.8.3 但parseInt($.fn.jquery)
只输出一位。
问问题
3848 次
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 回答