获取指定脚本版本号的 JavaScript 函数

这段代码实现了一个函数 getVersion,用于获取指定脚本的版本号。

function getVersion(scriptUrl, timeout = 3 * 1000) {
    return new Promise((resolve) => {
        const options = { url: `https://fastly.jsdelivr.net/gh/${scriptUrl}` };
        $.get(options, (err, resp, data) => {
            try {
                const regex = /scriptVersionNow\s*=\s*(['`"])([\d.]+)\1/; // 使用单引号包裹正则表达式
                const match = data.match(regex);
                const scriptVersionLatest = match ? match[2] : "";
                console.log(`\n====== 当前版本:${scriptVersionNow} 📌 最新版本:${scriptVersionLatest} ======`);
            } catch (e) {
                $.logErr(e, resp);
            }
            resolve();
        }, timeout);
    });
}

该函数接受两个参数:

  • scriptUrl:脚本的 URL 地址
  • timeout:超时时间,默认为 3 秒

函数返回一个 Promise 对象,通过调用该对象的 .then() 方法可以获取到脚本的版本号。

函数内部通过发送 GET 请求获取脚本内容,使用 $.get() 方法实现。请求的 URL 地址是 https://fastly.jsdelivr.net/gh/${scriptUrl},通过拼接 scriptUrl 参数构成完整的 URL。

请求成功后,处理返回的数据。首先使用正则表达式 /scriptVersionNow\s*=\s*(['"])([\d.]+)\1/匹配出脚本版本号。正则表达式的意义是匹配scriptVersionNow后跟着一个引号(单引号、双引号或反引号),然后匹配一个或多个数字或小数点,最后再匹配与第一个引号相同的引号。匹配结果存储在match` 变量中。

如果成功匹配到版本号,则将版本号赋值给 scriptVersionLatest 变量。否则,将空字符串赋值给 scriptVersionLatest

最后,使用 console.log() 方法输出当前版本号和最新版本号。

如果发生异常,捕获错误并使用 $.logErr() 方法记录错误信息和响应。

最后,调用 resolve() 方法结束 Promise,并传递空参数表示操作成功。

获取指定脚本版本号的 JavaScript 函数

原文地址: https://www.cveoy.top/t/topic/pk7l 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录