旧版格式

此页面描述了旧版 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,因此这些版本字符串相等:11.01.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