🔍 SemVer 验证
输入语义版本号,验证是否符合SemVer 2.0规范,并解析各部分含义。
⚖️ 版本比较
比较两个语义版本号的优先级高低。
📊 批量验证
每行一个版本号,批量验证是否符合SemVer规范。
📖 语义版本号(SemVer)详解
版本号格式
语义版本号遵循 MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD] 格式:
- MAJOR(主版本号):不兼容的API变更时递增
- MINOR(次版本号):向后兼容的功能新增时递增
- PATCH(修订号):向后兼容的问题修复时递增
- PRERELEASE(预发布标识):可选,如
-alpha.1、-beta.2 - BUILD(构建元数据):可选,如
+build.123,不影响版本优先级
版本优先级规则
- 先比较MAJOR,数值大的版本更高
- MAJOR相同则比较MINOR
- MINOR相同则比较PATCH
- 正式版本高于预发布版本(1.0.0 > 1.0.0-alpha)
- 预发布标识按点号分隔逐段比较:数字按数值比较,字母按ASCII比较
- 构建元数据不影响版本优先级
常见错误
- 前导零:
01.2.3❌(应为1.2.3) - 缺少部分:
1.2❌(应为1.2.0) - 空标识符:
1.2.3-.❌ - 非法字符:
1.2.3-α❌(预发布标识只允许ASCII字母数字和连字符)
📖 常见问题
什么是语义版本号(SemVer)?
语义版本号(Semantic Versioning, SemVer)是一种版本号命名规范,格式为MAJOR.MINOR.PATCH。MAJOR表示不兼容的API变更,MINOR表示向后兼容的功能新增,PATCH表示向后兼容的问题修复。还可以添加预发布标识(如-alpha.1)和构建元数据(如+001)。
SemVer 2.0的验证规则是什么?
SemVer 2.0要求:1)版本号格式为X.Y.Z,X/Y/Z为非负整数且不能有前导零;2)预发布标识由字母数字和连字符组成,以点号分隔;3)构建元数据由字母数字和连字符组成,以点号分隔;4)预发布版本优先级低于正式版本;5)版本号递增时不能跳过0。
如何比较两个语义版本号的大小?
比较规则:1)先比较MAJOR,大的版本更高;2)MAJOR相同则比较MINOR;3)MINOR相同则比较PATCH;4)正式版本高于预发布版本(1.0.0>1.0.0-alpha);5)预发布版本按标识符逐个比较,数字标识按数值比较,字母标识按ASCII比较,数字标识低于字母标识。
什么是预发布标识和构建元数据?
预发布标识(pre-release)跟在PATCH后以连字符连接,如1.0.0-alpha.1,表示不稳定版本。构建元数据(build metadata)以加号连接,如1.0.0+20130313144700,表示构建信息但不影响版本优先级。两者都是可选的。
数据会上传到服务器吗?
不会。所有版本号验证、解析和比较都在浏览器本地完成,不发送任何数据到服务器。