Firefox 舊版版本號
一個版本字串由一個或多個版本部分組成,各部分之間用點號分隔。
每個版本部分都解析為四個部分的序列:<number-a><string-b><number-c><string-d>。每個部分都是可選的。數字是十進位制整數(可以是負數),字串是非數字的 ASCII 字元。
以下是一些有效版本部分的示例
0(如1.0):<number-a>=05a(如1.5a):<number-a>=5,<string-b>=a5pre4(如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 會遞增,以相容 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