修复 Valine 错误判断 macOS 版本号小数点

2368°C 01-11-2021 notbyai
最近更新于:2022-06-16 17:39:50

文章摘要moonshot-v1-8k

Standby API Responsing..

错误的版本号

上次修改 macos 号判断后偶然发现了一个bug,博主 leanwhite 的 macos 系统号在后台 ua 中显示是 10.15,大多数 macos 都是两个小数点(1.2.3)储存为 1_2_3 形式,但如果版本号只有一个小数点(1.2)就会只取小数点前的数字,这样会存在版本号输出错误。移步 valine.js 源码中看了下判断句,发现了些问题。

一开始还以为是之前修改win10版本号去小数点函数冲突了,后面看了下是个单独函数不存在互相影响,然后把valine源代码换成了官方调试,结果bug依然存在。

解决方案

定位到 valine.js 中的 "Mac OS":function(){ ... } 函数修改如下,

    "Mac OS": function() {
    let res = e.replace(/^.*Mac OS X ([\d_]+).*$/, "$1").replace(/_/g, "."),  //原生判断
        int = e.match(/\Mac OS X ([\s\S]*?)\)/)[1];  //版本号字符串
    !int.match(/_/) ? res=int.match(/([\s\S]*?)\;/)[1] : res;  //判断存在“_”符号则单独匹配存在的小数点
    return res
}

注意,新版 valine 已取消函数形式判断,见 macOS:e.replace(/^.*Mac OS X ([\d_]+).*$/,"$1").replace(/_/g,".")

以上,有问题评论区留言。


评论留言

avatar
「 涂鸦画板 」 关闭表情 bilibili 小电视
h0h1h2h3h4h5h6h7h8h9h10h11h12h13h14h15h16h17h18h19h20h21h22h23h24h25h26h27h28h29h30h31h32h33h34h35h36h37h38h39h40h41h42h43h44h45h46h47h48h49h50h51h52h53h54h55h56h57h58h59h60h61h62h63
9 条评论
user_avatar
匿名者 Chrome / Windows 10
2023-07-01 回复

060606

user_avatar
匿名者 Chrome / Windows 10
2023-07-01 回复

060606

user_avatar
匿名者 Chrome / Windows 10
2023-07-01 回复

060606

user_avatar
匿名者 Chrome / Windows 10
2023-07-01 回复

060606

user_avatar
匿名者 Chrome / Windows 10
2023-07-01 回复

000

user_avatar
匿名者 Chrome / Windows 10
2023-05-06 回复
user_avatar
匿名者 Chrome / Windows 10
2023-05-06 回复

你爸妈4

user_avatar
防水材料加盟 Chrome / Windows 10
2022-03-26 回复

感谢分享 赞一个