旧版格式
此页面描述了旧版 Web 扩展版本字符串格式。有关当前版本字符串格式的信息,请参阅清单 version 键 文档。
Firefox 旧版版本号
**版本字符串**由一个或多个版本部分组成,用点号分隔。
每个**版本部分**被解析为四个部分的序列:<number-a><string-b><number-c><string-d>
。每个部分都是可选的。数字是十进制整数(可以为负数),字符串是非数字 ASCII 字符。
以下是一些有效版本部分的示例
0
(如1.0
中):<number-a>=0
5a
(如1.5a
中):<number-a>=5
,<string-b>=a
5pre4
(如3.5pre4
中):<number-a>=5
,<string-b>=pre
,<number-c>=4
*
(如1.0.*
中):<string-b>=*
为了向后兼容性和可读性,应用了一些特殊的解析规则
- 如果版本部分是单个星号,则将其解释为无限大的数字:
1.5.0.*
与1.5.0.(infinity)
相同 - 如果 string-b 是加号,则将 number-a 加 1 以与 Firefox 1.0.x 版本格式兼容:
1.0+
与1.1pre
相同
将版本部分拆分为字符串和数字序列的原因是,在比较版本部分时,数字部分将作为数字进行比较,例如 '1.0pre1' < '1.0pre10',而字符串将按字节进行比较。有关如何比较版本的详细信息,请参阅下一节。
从 Firefox 108 开始,使用此版本字符串的 Web 扩展在安装时会触发警告。
比较版本
比较两个版本字符串时,它们的版本部分将从左到右进行比较。空或缺少的版本部分等效于 0
。
如果在某一点上,一个版本字符串的版本部分大于另一个版本字符串的对应版本部分,则第一个版本字符串大于另一个版本字符串。
否则,版本字符串相等。由于缺少的版本部分被视为 0
,因此这些版本字符串相等:1
、1.0
、1.0.
、1.0.0
,甚至 1.0..
。
比较版本部分
版本部分也从左到右进行比较;部分 A 和 C 作为数字进行比较,而部分 B 和 D 则按字节进行比较。存在的字符串部分始终小于不存在的字符串部分(1.6a
小于 1.6
)。
示例
1.-1 < 1 == 1. == 1.0 == 1.0.0 < 1.1a < 1.1aa < 1.1ab < 1.1b < 1.1c < 1.1pre == 1.1pre0 == 1.0+ < 1.1pre1a < 1.1pre1aa < 1.1pre1b < 1.1pre1 < 1.1pre2 < 1.1pre10 < 1.1.-1 < 1.1 == 1.1.0 == 1.1.00 < 1.10 < 1.* < 1.*.1 < 2.0