封装一个版本对比(x.xx.xx)的方法
如果可以实现记得点赞分享,谢谢老铁~
/**版本对比 */
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)的方法相关推荐
- [js高手之路] 跟GhostWu一起封装一个字符串工具库-扩展字符串位置方法(4)
本文,我们接着之前的框架继续扩展,这次扩展了一共有5个与字符串位置相关的方法 between( left, right ) 返回两个字符串之间的内容, 如果第二个参数没有传递,返回的是找到的第一个参数 ...
- Monaco Editor教程(七): 实现版本对比功能
背景 在具有版本控制功能的WEB IDE 中,提交代码时,会有一个版本对比的功能,你可以点击每一个修改的文件,然后对比基础版本与当前修改的版本,被修改的地方会有颜色区分.这对于一个修改大文件,修改内容 ...
- c#自己封装一个轻量级ORM框架FastORM
在日常进行数据库操作的过程中,我的数据层使用的是微软企业库,但对于多字段的数据的插入与更新时写sql语句就会显得特别费时间,还会经常出现错误耗费时间排查,所以决定基于微软企业库封装一个轻量级的ORM框 ...
- Office LTSC 专业增强版 2021 显示“你的许可证并非XX”横幅解决方法(亲测有效,2016专业增强版同样适用,其他版本自行测试)
标题: Office LTSC 专业增强版 2021 显示"你的许可证并非XX"横幅解决方法(亲测有效,2016专业增强版同样适用,其他版本请自行测试) 问题描述: 我们在使用 O ...
- Python练习题:---给定一个字符串 {xxx[xxx{xxx}]xx{x[xxx]xxx{xxx}xx}x} 判断其中的 {}[]() 是否成对出现
给定一个字符串 {xxx[xxx{xxx}]xx{x[xxx]xxx{xxx}xx}x} 判断其中的 {} 是否成对出现 答题思路: 使用堆栈进行解决 我们首先压栈一个左括号,当什么时候检测到与之对应 ...
- 要求用户输入一个电子邮件。验证电子邮件格式是否正确。 电子邮件格式:XX@XX.com 实现方式:该字符串中必须包含@字符串和.字符串。 @不能出现在第一个位置,并且@位置大于.;
要求用户输入一个电子邮件.验证电子邮件格式是否正确. 电子邮件格式:XX@XX.com 实现方式:该字符串中必须包含"@"字符串和"."字符串. "@ ...
- Matlab各版本对比
官方文档主页 文档主页 - MathWorks 中国 各版本对比 MathWorks - Archived MathWorks Documentation - MathWorks 中国 发 ...
- ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。
DevUtils GitHub About ( 持续更新,目前含 200+ 工具类 ) Roadmap DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 ...
- C++封装一个音乐播放按钮
如何封装一个音乐播放按钮? 1.准备工作:音乐.开发工具VS stdio及图形库工具 2.设计思路:先加载音乐,再通过点击不同的按钮执行不同的操作(播放音乐,暂停音乐.继续播放.结束播放) 绘制按钮我 ...
最新文章
- Max retries exceeded with URL in requests
- java concat和 的区别,RxJava2 merge和concat 区别
- HotSpot 虚拟机的算法实现
- 圆的半径java_css中的圆形边界半径工件
- .net使用SqlBulkCopy类操作DataTable批量插入数据库数据,然后分页查询坑
- 【caffe-windows】全卷积网络特征图分析
- JAVA入门级教学之(final关键字)
- 离开载具_绝地最强载具登场?
- 嵌入式 U 盘自动挂载
- mysql 5.6 二进制安装包_centos6上mysql5.6二进制包安装
- Dev C++支持c++11标准的编译方法
- mysql选课时间冲突_选课常见问题解答
- 学习笔记——meta analysis
- android制作类似支付圆圈和打钩界面ProgressWheel
- SQL WEEK()函数
- 构造器是什么?构造器有什么用?
- jdk1.6,1.7,1.8解压版无需安装(64位)
- javascript知识点整理(四) 正则表达式
- NVT SDK 67X获取文件时长的一种方式
- java中的map对象_java中遍历Map对象的四种方式