项目场景:
软件升级强制进行更新失败
原因分析:
提示:未正确比较版本号大小
针对获取软件的版本号与后台返回的版本号比较,需要去除V之后比较,但因为前后台设定版本V大小写不一致,导致比对失败
解决方案:
提示:使用正则,忽略大小写
// 1. 获取当前使用软件的版本号
plus.runtime.getProperty( plus.runtime.appid, function ( wgtinfo ) {
_this.curVersion = wgtinfo.version;
});
// 2. 获取后台最新版本信息
let res = await this.$request({
url: "/admin/appupdate/getMaxApp/1", //+ this.appType
method: "GET"
})
var reg = /\\|\/|\?|\?|\*|\.|\"|\“|\”|\'|\‘|\’|\<|\>|\{|\}|\[|\]|\【|\】|\:|\:|\、|\^|\$|\!|\~|\`|\|/g;
var appEdition = res.appEdition.replace(reg, '');
appEdition = appEdition.replace(/v|V/g, ''); // V1.2.3 --- 1.2.3
let curVersion = _this.curVersion.replace(reg, '');
curVersion = curVersion.replace(/V/gi, '') // v1.2.3 --- 1.2.3
appEdition = appEdition.replace(/Vv/g, ''); // Vv1.2.3 --- 1.2.3
拓展:
正则表达式中/i,/g,/ig,/gi,/m的区别与含义
/v|V/ (| 代表或者的意思)
/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)
/ig(全文查找、忽略大小写)
/gi(全文查找、忽略大小写)