JS 实现版本号比较功能

js实现一个客户端版本号的统计,目前该功能可以实现版本号中数字版本的统计,例如2.2.3 <2.2.3.1, 1.2.3<2.0.0,原理就是从高版本号到次版本号依次比较

 1 if (!Array.prototype.trim){
 2                 Array.prototype.trim=function(){
 3                     var  arr=[];
 4                     this.forEach(function(e){
 5                         if(e.match(/\S+/))  arr.push(e);
 6                     })
 7                     return arr;
 8                 }
 9             }
10
11 function version_compare(a,b) {
12                                 var a_str=a.name.toString();
13                                 var a_version=a_str.split(/\D+/).trim();
14                                 var b_str=b.name.toString();
15                                 var b_version=b_str.split(/\D+/).trim();
16
17                                 var aLength = a_version.length;
18                                 var bLength = b_version.length;
19                                 var minL = Math.min(aLength,bLength);
20                                     var r = null
21                                     for (var i = 0; i < minL; i++) {
22                                        //此处要转成Number类型,不然比较会出现15<6的情况,可能由于正则匹配造成的,还没有详细探究原因
23                                         var aNum = new Number(a_version[i]);
24                                         var bNum = new Number(b_version[i]);
25                                         if (aNum < bNum) {
26                                             r = 1
27                                             break;
28
29                                         } else if (aNum >bNum) {
30                                             r = -1;
31                                             break;
32                                         } else if (i == minL-1 && aNum == bNum) {
33
34                                             if(aLength>minL){
35                                                 r = 1;
36                                                 break;
37                                             }else if(bLength>minL) {
38                                                 r = -1;
39                                                 break;
40                                             }
41                                         }
42
43                                     }
44                                 return r;
45                                 }

原文地址:https://www.cnblogs.com/gl-developer/p/8417003.html

时间: 2024-10-19 15:42:12

JS 实现版本号比较功能的相关文章

js实现全选功能

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

js旋转图片的功能

最近突然想研究一下js旋转图片的功能.对于之前的实现方式,就不先说了.现在HTML5很不错,主要了解一下HTML5中的图片旋转吧. 实例演示:  http://www.imqing.com/demo/rotateImg.html 原理:利用canvas对象来旋转. 实现方式:首先创建一个canvas元素,然后把img元素绘入canvas.但是,实际上,这是默认情况,就是图片没旋转时.如果图片要旋转90度的话,就需要先把canvas画布旋转90度后再绘图. 描述如下: (内部旋转原理是这样的,图片

js实现网页收藏功能,动态添加删除网址

<html> <head> <title> 动态添加删除网址 </title> <meta charset="utf-8"> <script> function add(){ var name = document.getElementById("name").value; var url = document.getElementById("url").value; var

使用JS来实现验证码功能

最近想为自己的Django博客添加验证码功能,本来想使用第三方库来实现的,不过考虑到添加第三方库对性能的影响,以及第三方库是否安全可靠的问题,还是用自己的代码来实现吧.反正用JS来实现验证码功能又不是很难. 简单来说,用一个create_code()方法在页面中生成验证码,然后control_submit()方法检测验证码文本框(id="user_input_code")的键盘输入事件,当文本框输入了超过4个字符后,调用verify_code ()检测输入的字符与生成的验证码是否一致,

js 比较版本号(一)

最近群了有人问如何比较版本号,我好奇的试了一下. 比较版本号,怎么办?懒人的方法是借鉴,先查网上的资料,看看有木有直接的帮过来的.而且直接便捷的好像在茫茫"文海"中,而且发现大多数是Java的,于是这里自己试了下用js 来比较,并试图找到简洁的比较方法. 比较版本号就是对字符串进行比较,这里结合正则表达式处理版本号. 首先,来比较常见的版本号 如 "2.2.3","2.3.0": js版本号比较--之版本1.0(ps:由于后面进行改进,因此对每次

js 比较版本号(二)

在上一篇文章--js 比较版本号(一)中,笔者利用js使用自己的方法复杂的处理了下只有一对字符串的版本号比较.为什么复杂呢,  因为不适用一堆版本号的比较,需要更多的代码,那有又如何解决呢? 事实上,js已经为我们封装好了排序函数sort(),能很好的便捷解决字符串比较,排序的问题,真是"踏破铁鞋无觅处,得来全不费工夫". w3c上有很好的2个例子[1],搬过来码在这里: 测试1: var a=["10","5","40",&

用js实现拖拽功能

平常我们在网上可以看到,按住一张图片,然后拖到另一处去,前天在网上看石川(Blue)老师 的js课堂,有见过这个,写下来与大家分享一下: 1,先画个div小红块,样式设置如下: #div1{width: 200px; height: 200px; background-color: red; position:absolute;} 这里的positon属性很重要,如果没有这个,根本拖不动你可以试一下. 2,然后需要用到三个事件,onmousedown, onmousemove, onmouseu

JS实现搜索匹配功能

<!doctype html> <html> <head> <meta charset="utf-8"> <title>JS实现搜索匹配功能</title> <script src="https://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script> <style> div,li,ul { margin:

关于Js添加版本号

背景 在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css.js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候,浏览器就可以从浏览器的缓存中获取css.js等,而不必从你的服务器读取,这样在一定程度上加快了网站的打开速度,又可以节约一下你的服务器流量. 问题 现在问题来了,.htaccess设置的css.js缓存都有一个过期时间,如果在访客的浏览器中已经缓存了css.js,在这些css.js缓存未过期之前,浏览器只会