SemVer版本解析比较器

解析、比较、排序语义化版本号,支持 ^ ~ 范围匹配判断

按 semver.org 规范解析版本号的 major / minor / patch / prerelease / build 各段,支持两个版本比较(正确处理先行版本排序规则)、批量排序、以及 ^1.2.3、~1.2.3、>=1.0.0 <2.0.0 等范围匹配判断。手写解析引擎,无第三方依赖,全部计算在浏览器本地完成。

输入

输入单个版本号,实时分解并校验是否符合 SemVer 规范

SemVer 规范速查卡

  • • 版本格式:主版本.次版本.修订号[-先行版本][+构建元数据],如 1.2.3-alpha.1+exp
  • • 主版本 MAJOR:不兼容的 API 修改;次版本 MINOR:向下兼容的功能新增;修订号 PATCH:向下兼容的问题修复
  • • 先行版本排序:1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0
  • • 标识符比较:纯数字按数值比较,字母按 ASCII 排序;数字标识符优先级低于字母标识符
  • • 字段越多优先级越高(前面字段都相等时);构建元数据(+ 后内容)不参与优先级比较
  • • 范围语法:^1.2.3 → >=1.2.3 <2.0.0(0.x 时锁定次版本);~1.2.3 → >=1.2.3 <1.3.0;空格分隔为「与」,|| 分隔为「或」

解析结果

输入版本号后,这里会显示分解结果

#关于SemVer版本解析比较器

语义化版本(Semantic Versioning,简称 SemVer)是目前最流行的版本号规范,由主版本号(MAJOR)、次版本号(MINOR)和修订号(PATCH)三段数字组成,可附加先行版本标识(如 alpha、beta、rc.1)与构建元数据。npm、Maven、Cargo、Go Modules 等主流包管理器都基于 SemVer 进行依赖解析,理解它的优先级规则是排查「为什么没有装上最新版本」「为什么锁文件突然变了」这类问题的基础。

典型应用场景

  • 发版前确认新版本号与旧版本的语义关系(修复应升 PATCH、加功能应升 MINOR、破坏性变更应升 MAJOR)
  • 排查依赖冲突:把 package.json 里的 ^ ~ 范围展开成精确区间,确认某个已安装版本是否真的满足约束
  • 整理发布清单:把散落在 issue 里的版本号批量排序,核对发布顺序
  • 校验先行版本命名是否规范(alpha.1、beta.2、rc 而不是随意字符串)

常见问题

  • 为什么 1.0.0-alpha 比 1.0.0 小?规范规定有先行版本标识的版本优先级低于正式版本,因为先行版本还在测试中。
  • 构建元数据影响比较吗?不影响。+build.1 与 +build.999 优先级相同,比较时会被忽略。
  • ^0.2.3 为什么不展开到 <1.0.0?0.x 阶段 API 尚不稳定,npm 规定 ^0.2.3 只锁定到 <0.3.0,^0.0.3 更是只允许 <0.0.4。
  • 数据会上传吗?不会。解析、比较、排序全部在浏览器本地完成。

相关工具推荐

Spine动画编辑器

专业的Spine动画预览和编辑工具,支持多引擎导出

热门 新品 本地

SQL查询优化器

分析SQL查询并提供优化建议

热门 新品 本地

JVM启动参数配置

可视化配置Java虚拟机启动参数,支持内存、GC、性能等选项

热门 新品 本地

代码片段转换

不同编程语言间代码片段转换(如Python↔JavaScript)

热门 新品 本地

IP地址查询

查询IP地址的地理位置、运营商、ASN等信息,支持IPv4和IPv6

热门 新品 本地

JSON转TypeScript接口

根据JSON数据自动生成TypeScript类型定义

热门 新品 本地