如果可以实现记得点赞分享,谢谢老铁~


/**版本对比 */
export const changeVersion = (a: any, b: any) => {// 获取数字function toNumber(num: { toString: () => any }) {const n = num.toString();const n_arr = n.split(/\D/);if (n_arr[n_arr.length - 1] == '') {n_arr.pop();}const n_replace = ['', '0', '00', '000', '0000'];const r_n_replace = n_replace.reverse();for (let i = 0; i < n_arr.length; i++) {let l = n_arr[i].length;n_arr[i] = r_n_replace[i] + n_arr[i];}const res = n_arr.join('');return Number(res);}// 获取字母function toString(str: { toString: () => any }) {const s = str.toString();const reg = s.match(/[a-zA-Z]/g);if (reg !== null) {return reg;} else {return s;}}let a1: any = toNumber(a);const a2: any = toString(a);const b1: any = toNumber(b);const b2: any = toString(b);if (a1 < b1) {return b;} else if (a1 > b1) {return a;} else if ((a1 = b1)) {// 版本号相同时,对比字母,将其转为16进制,进行对比let a2_str = a2 && a2[0].toString(16);const b2_str = b2 && b2[0].toString(16);if (a2_str < b2_str) {return b;} else if (a2_str > b2_str) {return a;} else if ((a2_str = b2_str)) {console.log('两个版本号相同!最新版本号为:' + a);return a;}}
};

封装一个版本对比(x.xx.xx)的方法相关推荐

  1. [js高手之路] 跟GhostWu一起封装一个字符串工具库-扩展字符串位置方法(4)

    本文,我们接着之前的框架继续扩展,这次扩展了一共有5个与字符串位置相关的方法 between( left, right ) 返回两个字符串之间的内容, 如果第二个参数没有传递,返回的是找到的第一个参数 ...

  2. Monaco Editor教程(七): 实现版本对比功能

    背景 在具有版本控制功能的WEB IDE 中,提交代码时,会有一个版本对比的功能,你可以点击每一个修改的文件,然后对比基础版本与当前修改的版本,被修改的地方会有颜色区分.这对于一个修改大文件,修改内容 ...

  3. c#自己封装一个轻量级ORM框架FastORM

    在日常进行数据库操作的过程中,我的数据层使用的是微软企业库,但对于多字段的数据的插入与更新时写sql语句就会显得特别费时间,还会经常出现错误耗费时间排查,所以决定基于微软企业库封装一个轻量级的ORM框 ...

  4. Office LTSC 专业增强版 2021 显示“你的许可证并非XX”横幅解决方法(亲测有效,2016专业增强版同样适用,其他版本自行测试)

    标题: Office LTSC 专业增强版 2021 显示"你的许可证并非XX"横幅解决方法(亲测有效,2016专业增强版同样适用,其他版本请自行测试) 问题描述: 我们在使用 O ...

  5. Python练习题:---给定一个字符串 {xxx[xxx{xxx}]xx{x[xxx]xxx{xxx}xx}x} 判断其中的 {}[]() 是否成对出现

    给定一个字符串 {xxx[xxx{xxx}]xx{x[xxx]xxx{xxx}xx}x} 判断其中的 {} 是否成对出现 答题思路: 使用堆栈进行解决 我们首先压栈一个左括号,当什么时候检测到与之对应 ...

  6. 要求用户输入一个电子邮件。验证电子邮件格式是否正确。 电子邮件格式:XX@XX.com 实现方式:该字符串中必须包含@字符串和.字符串。 @不能出现在第一个位置,并且@位置大于.;

    要求用户输入一个电子邮件.验证电子邮件格式是否正确. 电子邮件格式:XX@XX.com 实现方式:该字符串中必须包含"@"字符串和"."字符串. "@ ...

  7. Matlab各版本对比

    官方文档主页 文档主页 - MathWorks 中国 各版本对比 MathWorks - Archived MathWorks Documentation - MathWorks 中国 ​​​​​​发 ...

  8. ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。

    DevUtils GitHub About ( 持续更新,目前含 200+ 工具类 ) Roadmap DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 ...

  9. C++封装一个音乐播放按钮

    如何封装一个音乐播放按钮? 1.准备工作:音乐.开发工具VS stdio及图形库工具 2.设计思路:先加载音乐,再通过点击不同的按钮执行不同的操作(播放音乐,暂停音乐.继续播放.结束播放) 绘制按钮我 ...

最新文章

  1. Max retries exceeded with URL in requests
  2. java concat和 的区别,RxJava2 merge和concat 区别
  3. HotSpot 虚拟机的算法实现
  4. 圆的半径java_css中的圆形边界半径工件
  5. .net使用SqlBulkCopy类操作DataTable批量插入数据库数据,然后分页查询坑
  6. 【caffe-windows】全卷积网络特征图分析
  7. JAVA入门级教学之(final关键字)
  8. 离开载具_绝地最强载具登场?
  9. 嵌入式 U 盘自动挂载
  10. mysql 5.6 二进制安装包_centos6上mysql5.6二进制包安装
  11. Dev C++支持c++11标准的编译方法
  12. mysql选课时间冲突_选课常见问题解答
  13. 学习笔记——meta analysis
  14. android制作类似支付圆圈和打钩界面ProgressWheel
  15. SQL WEEK()函数
  16. 构造器是什么?构造器有什么用?
  17. jdk1.6,1.7,1.8解压版无需安装(64位)
  18. javascript知识点整理(四) 正则表达式
  19. NVT SDK 67X获取文件时长的一种方式
  20. java中的map对象_java中遍历Map对象的四种方式

热门文章

  1. jQuery实现各种轮播图
  2. 一文读懂云上DevOps能力体系!
  3. 百度再出Lens黑科技!用Paddle Mobile实现类人眼视觉AI能力
  4. WebSockets通信
  5. b样条和三次样条_样条函数B样条三次样条插值光滑余因子
  6. AI绘图软件分享:Midjourney 基础教程(四)参数进阶
  7. 详述 MIMIC护理人员信息表(十五)
  8. 【超实用的浏览器插件】浏览器加 buff 指南,1 分钟改变你的浏览器
  9. LINUX内核狂想曲之SLOB分配器
  10. Android Studio开发安卓app TTS学习,使用TextToSpeech类完成输入文字播放中文