X-Git-Url: http://git.osdn.jp/view?p=pettanr%2FclientJs.git;a=blobdiff_plain;f=0.6.x%2Fjs%2F01_core%2F08_XNumber.js;fp=0.6.x%2Fjs%2F01_core%2F08_XNumber.js;h=fa5d7a76bcb0d364d657e1651acac3ff3c053e10;hp=0000000000000000000000000000000000000000;hb=57db8e7e16caced76c311d519ef250ae9100df63;hpb=512e08f4d38eab417f9651277e8a50c08535cb07 diff --git a/0.6.x/js/01_core/08_XNumber.js b/0.6.x/js/01_core/08_XNumber.js new file mode 100644 index 0000000..fa5d7a7 --- /dev/null +++ b/0.6.x/js/01_core/08_XNumber.js @@ -0,0 +1,38 @@ +/** + * Number に関する関数を集めたものです。 + * @namespace X.Number + * @alias X.Number + */ +X[ 'Number' ] = { + 'conpareVersion' : X_Number_conpareVersion +}; + +/** + * X.X.X という形式のバージョン文字列同氏の比較
+ * -1 v1 < v2
+ * 0 v1 = v2
+ * 1 v1 > v2 + * @alias X.Number.conpareVersion + * @param {string} v1 '1.12.20151114' バージョン文字列。 + * @param {string} v2 + * @return {number} 比較結果 + */ + function X_Number_conpareVersion( v1, v2 ){ + var i = 0, + l, n1, n2; + + v1 = v1.split( '.' ); + v2 = v2.split( '.' ); + + l = Math.min( v1.length, v2.length ); + + for( ; i < l; ++i ){ + n1 = parseFloat( v1[ i ] ); + n2 = parseFloat( v2[ i ] ); + if( n1 !== n2 ){ + return n1 > n2 ? 1 : -1; + }; + }; + if( v1.length === v2.length ) return 0; + return v1.length > v2.length ? 1 : -1; +};