数字实现千位分割

古城微笑少年丶 2022-04-16 03:20 446阅读 0赞

源网站:https://wenda.so.com/q/1461341937726162

js将数字千位分割的6个方法

  1. function toThousands1(num) {
  2. var result = [],
  3. counter = 0;
  4. num = (num || 0).toString().split('');
  5. for(var i = num.length - 1; i >= 0; i--) {
  6. counter++;
  7. result.unshift(num[i]);
  8. if(!(counter % 3) && i != 0) {
  9. result.unshift(',');
  10. }
  11. }
  12. return result.join('');
  13. }
  14. function toThousands2(num) {
  15. var result = '',
  16. counter = 0;
  17. num = (num || 0).toString();
  18. for(var i = num.length - 1; i >= 0; i--) {
  19. counter++;
  20. result = num.charAt(i) + result;
  21. if(!(counter % 3) && i != 0) {
  22. result = ',' + result;
  23. }
  24. }
  25. return result;
  26. }
  27. function toThousands3(num) {
  28. var num = (num || 0).toString(),
  29. re = /\d{3}$/,
  30. result = '';
  31. while(re.test(num)) {
  32. result = RegExp.lastMatch + result;
  33. if(num !== RegExp.lastMatch) {
  34. result = ',' + result;
  35. num = RegExp.leftContext;
  36. } else {
  37. num = '';
  38. break;
  39. }
  40. }
  41. if(num) {
  42. result = num + result;
  43. }
  44. return result;
  45. }
  46. function toThousands4(num) {
  47. var num = (num || 0).toString(),
  48. result = '';
  49. while(num.length > 3) {
  50. result = ',' + num.slice(-3) + result;
  51. num = num.slice(0, num.length - 3);
  52. }
  53. if(num) {
  54. result = num + result;
  55. }
  56. return result;
  57. }
  58. function toThousands5(num) {
  59. var num = (num || 0).toString(),
  60. temp = num.length % 3;
  61. switch(temp) {
  62. case 1:
  63. num = '00' + num;
  64. break;
  65. case 2:
  66. num = '0' + num;
  67. break;
  68. }
  69. return num.match(/\d{3}/g).join(',').replace(/^0+/, '');
  70. }
  71. function toThousands6(num) {
  72. return(num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
  73. }

下面放上可以直接测试网页

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
  6. <title></title>
  7. <style type="text/css">
  8. table {
  9. width: 100%;
  10. text-align: center;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <table border="0" cellspacing="10" cellpadding="10">
  16. <tr>
  17. <th colspan="7">数字 执行5000次消耗的时间(ms)</th>
  18. </tr>
  19. <tr>
  20. <td>次数</td>
  21. <td>toThousands1</td>
  22. <td>toThousands2</td>
  23. <td>toThousands3</td>
  24. <td>toThousands4</td>
  25. <td>toThousands5</td>
  26. <td>toThousands6</td>
  27. </tr>
  28. <tr>
  29. <td>1</td>
  30. <td>4</td>
  31. <td>1</td>
  32. <td>3</td>
  33. <td>1</td>
  34. <td>14</td>
  35. <td>2</td>
  36. </tr>
  37. <tr>
  38. <td>10</td>
  39. <td>14</td>
  40. <td>1</td>
  41. <td>3</td>
  42. <td>0</td>
  43. <td>7</td>
  44. <td>2</td>
  45. </tr>
  46. <tr>
  47. <td>100</td>
  48. <td>12</td>
  49. <td>1</td>
  50. <td>2</td>
  51. <td>4</td>
  52. <td>5</td>
  53. <td>3</td>
  54. </tr>
  55. <tr>
  56. <td>1000</td>
  57. <td>13</td>
  58. <td>2</td>
  59. <td>3</td>
  60. <td>2</td>
  61. <td>9</td>
  62. <td>5</td>
  63. </tr>
  64. <tr>
  65. <td>10000</td>
  66. <td>21</td>
  67. <td>4</td>
  68. <td>3</td>
  69. <td>1</td>
  70. <td>6</td>
  71. <td>3</td>
  72. </tr>
  73. <tr>
  74. <td>100000</td>
  75. <td>21</td>
  76. <td>3</td>
  77. <td>2</td>
  78. <td>1</td>
  79. <td>5</td>
  80. <td>6</td>
  81. </tr>
  82. <tr>
  83. <td><input type="" name="inp" id="inp" value="" placeholder="输入数字" /></td>
  84. <td id="t1"></td>
  85. <td id="t2"></td>
  86. <td id="t3"></td>
  87. <td id="t4"></td>
  88. <td id="t5"></td>
  89. <td id="t6"></td>
  90. </tr>
  91. </table>
  92. <script src="js/jquery-1.11.2.min.js" type="text/javascript" charset="utf-8"></script>
  93. <script type="text/javascript">
  94. $("inp").addEventListener("input", function(event) {
  95. var inpvalue = this.value;
  96. var t1 = toThousands1(inpvalue);
  97. $("t1").innerHTML = t1;
  98. //console.log("t1",t1)
  99. var t2 = toThousands2(inpvalue);
  100. $("t2").innerHTML = t2;
  101. //console.log("t2",t2)
  102. var t3 = toThousands3(inpvalue);
  103. $("t3").innerHTML = t3;
  104. //console.log("t3",t3)
  105. var t4 = toThousands4(inpvalue);
  106. $("t4").innerHTML = t4;
  107. //console.log("t4",t4)
  108. var t5 = toThousands5(inpvalue);
  109. $("t5").innerHTML = t5;
  110. //console.log("t5",t5)
  111. var t6 = toThousands6(inpvalue);
  112. $("t6").innerHTML = t6;
  113. //console.log("t6",t6)
  114. })
  115. function $(id) {
  116. return document.getElementById(id);
  117. }
  118. function toThousands1(num) {
  119. var result = [],
  120. counter = 0;
  121. num = (num || 0).toString().split('');
  122. for(var i = num.length - 1; i >= 0; i--) {
  123. counter++;
  124. result.unshift(num[i]);
  125. if(!(counter % 3) && i != 0) {
  126. result.unshift(',');
  127. }
  128. }
  129. return result.join('');
  130. }
  131. function toThousands2(num) {
  132. var result = '',
  133. counter = 0;
  134. num = (num || 0).toString();
  135. for(var i = num.length - 1; i >= 0; i--) {
  136. counter++;
  137. result = num.charAt(i) + result;
  138. if(!(counter % 3) && i != 0) {
  139. result = ',' + result;
  140. }
  141. }
  142. return result;
  143. }
  144. function toThousands3(num) {
  145. var num = (num || 0).toString(),
  146. re = /\d{3}$/,
  147. result = '';
  148. while(re.test(num)) {
  149. result = RegExp.lastMatch + result;
  150. if(num !== RegExp.lastMatch) {
  151. result = ',' + result;
  152. num = RegExp.leftContext;
  153. } else {
  154. num = '';
  155. break;
  156. }
  157. }
  158. if(num) {
  159. result = num + result;
  160. }
  161. return result;
  162. }
  163. function toThousands4(num) {
  164. var num = (num || 0).toString(),
  165. result = '';
  166. while(num.length > 3) {
  167. result = ',' + num.slice(-3) + result;
  168. num = num.slice(0, num.length - 3);
  169. }
  170. if(num) {
  171. result = num + result;
  172. }
  173. return result;
  174. }
  175. function toThousands5(num) {
  176. var num = (num || 0).toString(),
  177. temp = num.length % 3;
  178. switch(temp) {
  179. case 1:
  180. num = '00' + num;
  181. break;
  182. case 2:
  183. num = '0' + num;
  184. break;
  185. }
  186. return num.match(/\d{3}/g).join(',').replace(/^0+/, '');
  187. }
  188. function toThousands6(num) {
  189. return(num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
  190. }
  191. </script>
  192. </body>
  193. </html>

发表评论

表情:
评论列表 (有 0 条评论,446人围观)

还没有评论,来说两句吧...

相关阅读