[Java教程]js 比较版本号(一)
0 2016-07-03 15:00:13
最近群了有人问如何比较版本号,我好奇的试了一下。
比较版本号,怎么办?懒人的方法是借鉴,先查网上的资料,看看有木有直接的帮过来的。而且直接便捷的好像在茫茫"文海"中,而且发现大多数是Java的,于是这里自己试了下用js 来比较,并试图找到简洁的比较方法。
比较版本号就是对字符串进行比较,这里结合正则表达式处理版本号。
首先,来比较常见的版本号 如 "2.2.3","2.3.0":
js版本号比较--之版本1.0(ps:由于后面进行改进,因此对每次比较加个"版本号" )//假定字符串的每节数都在5位以下function toNum(a){var a=a.toString();//也可以这样写 var c=a.split(/\./);var c=a.split('.'); var num_place=["","0","00","000","0000"],r=num_place.reverse(); for (var i=0;i_b) console.log("版本号"+a+"是新版本!"); if(_a<_b console.log a="2.2.3" cpr_version>
在chrome 控制台中执行结果:
多来几组:
有的版本号可能带有字母,如何比较呢?如 "v2.2.3","v2.3.0", 不用着急,用正则表达式,改动一点点即可:
js版本号比较--之版本1.1//假定字符串的每节数都在5位以下
function toNum(a){var a=a.toString();//这里变了var c=a.split(/\D/); var num_place=["","0","00","000","0000"],r=num_place.reverse(); for (var i=0;i_b) console.log("版本号"+a+"是新版本!"); if(_a<_b console.log a="v2.2.3" cpr_version>
执行结果:
到这里,js比较版本号基本结束。在网上看到居然有类似这种"2.3.0a","2.3.0b"版本号,显然后一种版本新一些。如果有,该如何比较呢?
思路不变,上面已经处里好了数字的,接下来只需比较字母的顺序:
js版本号比较之--版本1.2//假定字符串的每节数都在5位以下//去除数组空值||空格值if (!Array.prototype.trim){ Array.prototype.trim=function(){ var arr=[]; this.forEach(function(e){ if(e.match(/\S+/)) arr.push(e); }) return arr; } }//提取数字部分function toNum(a){ var a=a.toString();var c=a.split(/\D/).trim(); var num_place=["","0","00","000","0000"],r=num_place.reverse(); for (var i=0;i_b1) console.log("版本号"+a+"是新版本!"); if(_a1<_b1 console.log if _a2="_a2.charCodeAt(0).toString(16);" _b2="_b2.charCodeAt(0).toString(16);">_b2) console.log("版本号"+a+"是新版本!"); if(_a2<_b2 console.log if a="2.3.0a">
在chrome 控制台中执行结果:
至此,带字符升级模式的版本号也比较完了。当然,上面的脚本只能比较带一个字母字符的,带多个字母字符的"版本号"不常见,在此略去。上面也只是比较
了一对,如果有多组版本号,改如何处理呢?请看笔者文章:js比较版本号(二)
本文网址:http://www.shaoqun.com/a/235615.html
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。
JS
0