Pot.Complex.compareVersions

{Number|Boolean} Pot.Complex.compareVersions ({String|Number} ver1, {String|Number} ver2 [, {String} operator])

Pot.js で利用可能。 PotLite.js では利用できません。

2 つのバージョン番号を比較します。

'beta' や 'alpha' のような表記も含め、2 つのバージョン番号を比較します。
引数 ver1 と ver2 には、比較する 2 つのバージョン番号を指定します。
ver1 が ver2 より上なら 1 が返ります。
ver2 が ver1 より上なら -1 が返ります。
ver1 と ver2 が等しい場合は 0 が返ります。
引数 operator を指定すると、(ver1 operator ver2) の条件式の結果が返ります。
比較は、ドット '.' で分解され順に評価されます。

Pot.globalize() が適応されている場合、Pot.compareVersions() が compareVersions() で実行できます。

ver1 が ver2 より上なら 1、ver2 が ver1 より上なら -1、同じ場合は 0 が返ります。
operator を指定した場合は、その条件式が 真 (true) なら true、そうでない場合 false が返ります。

function compareVersionsRepr(a, b) {
    var x = Pot.compareVersions(a, b);
    if (x == 0) {
        return a + ' == ' + b;
    } else if (x > 0) {
        return a + ' > '  + b;
    } else {
        return a + ' < '  + b;
    }
}
Pot.debug(compareVersionsRepr('1.0pre', '1.0')); // '1.0pre < 1.0'
debug(compareVersions('8.2.5rc',   '8.2.5a'));        // 1
debug(compareVersions('8.2.50',    '8.2.52'));        // -1
debug(compareVersions('5.3.0-dev', '5.3.0'));         // -1
debug(compareVersions('4.1.0.52',  '4.01.0.51'));     // 1
debug(compareVersions('1.01a',     '1.01'));          // -1
debug(compareVersions('1.0.0',     '1.0.00'));        // 0
debug(compareVersions('2.1.0',     '2.0.0',   '<'));  // false
debug(compareVersions('2.1.0',     '2.0.0',   '>'));  // true
debug(compareVersions('2.1.0a',    '2.1.0a',  '==')); // true