OSDN Git Service

forget to commit.
authoritozyun <itozyun@user.sourceforge.jp>
Wed, 10 Feb 2016 07:59:11 +0000 (16:59 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Wed, 10 Feb 2016 07:59:11 +0000 (16:59 +0900)
0.6.x/js/01_core/08_XNumber.js [new file with mode: 0644]

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 (file)
index 0000000..fa5d7a7
--- /dev/null
@@ -0,0 +1,38 @@
+/**\r
+ * Number に関する関数を集めたものです。\r
+ * @namespace X.Number\r
+ * @alias X.Number\r
+ */\r
+X[ 'Number' ] = {\r
+       'conpareVersion'      : X_Number_conpareVersion\r
+};\r
+\r
+/**\r
+ * X.X.X という形式のバージョン文字列同氏の比較 <br>\r
+ * -1 v1 < v2<br>\r
+ *  0 v1 = v2<br>\r
+ *  1 v1 > v2\r
+ * @alias X.Number.conpareVersion\r
+ * @param {string} v1 '1.12.20151114' バージョン文字列。\r
+ * @param {string} v2\r
+ * @return {number} 比較結果\r
+ */\r
+ function X_Number_conpareVersion( v1, v2 ){\r
+       var i = 0,\r
+               l, n1, n2;\r
+       \r
+       v1 = v1.split( '.' );\r
+       v2 = v2.split( '.' );   \r
+       \r
+       l = Math.min( v1.length, v2.length );\r
+\r
+       for( ; i < l; ++i ){\r
+               n1 = parseFloat( v1[ i ] );\r
+               n2 = parseFloat( v2[ i ] );\r
+               if( n1 !== n2 ){\r
+                       return n1 > n2 ? 1 : -1;\r
+               };\r
+       };\r
+       if( v1.length === v2.length ) return 0;\r
+       return v1.length > v2.length ? 1 : -1;\r
+};\r