- 论坛徽章:
- 0
|
js 之 Number 工具类
Js代码- 1.//只能输入整数
- 2.function onlyInteger(obj) {
- 3. var curVal = obj.value + '';
- 4. if(curVal.length > 1) {
- 5. var filterValue = obj.value.replace(/[^\d]/g,'').replace(/^0\d*$/g,'');
- 6. if(obj.value != filterValue) {
- 7. obj.value = filterValue;
- 8. }
- 9. } else {
- 10. obj.value = obj.value.replace(/\D/g,'');
- 11. }
- 12.}
- 13.
- 14.//只能输入2位金额
- 15.function onlyMoney(obj) {
- 16. var curVal = obj.value + '';
- 17. if(curVal.length > 1) {
- 18. var filterValue = obj.value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1').replace(/^0(\d{1,10}(?:\.\d{0,2})?)*$/g, '');
- 19. if(obj.value != filterValue) {
- 20. obj.value = filterValue;
- 21. }
- 22. } else {
- 23. obj.value = obj.value.replace(/\D/g,'');
- 24. }
- 25.}
- 26.//只能输入3位重量
- 27.function onlyWeight(obj) {
- 28. var curVal = obj.value + '';
- 29. if(curVal.length > 1) {
- 30. var filterValue = obj.value.replace(/^\D*(\d*(?:\.\d{0,3})?).*$/g, '$1').replace(/^0(\d{1,10}(?:\.\d{0,3})?)*$/g, '');
- 31. if(obj.value != filterValue) {
- 32. obj.value = filterValue;
- 33. }
- 34. } else {
- 35. obj.value = obj.value.replace(/\D/g,'');
- 36. }
- 37.}
- 38.//参数说明:num 要格式化的数字 n 保留小数位
- 39.function formatMoney(num,n) {
- 40. if(num&&n){
- 41. num=parseFloat(num);
- 42. num=String(num.toFixed(n));
- 43. var re=/(-?\d+)(\d{3})/;
- 44. while(re.test(num))
- 45. num=num.replace(re,"$1,$2")
- 46. return num;
- 47. }else{
- 48. return "0.00";
- 49. }
- 50.}
- 51.
- 52.//分转元
- 53.function fToy(money) {
- 54. return (parseFloat(money).div(100));
- 55.}
- 56.
- 57.//元转分
- 58.function yTof(money) {
- 59. return (parseFloat(money).mul(100));
- 60.}
- 61.
- 62.//除法函数,用来得到精确的除法结果
- 63.//说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
- 64.//调用:accDiv(arg1,arg2)
- 65.//返回值:arg1除以arg2的精确结果
- 66.function accDiv(arg1,arg2){
- 67. var t1=0,t2=0,r1,r2;
- 68. try{t1=arg1.toString().split(".")[1].length}catch(e){}
- 69. try{t2=arg2.toString().split(".")[1].length}catch(e){}
- 70. with(Math){
- 71. r1=Number(arg1.toString().replace(".",""))
- 72. r2=Number(arg2.toString().replace(".",""))
- 73. return (r1/r2)*pow(10,t2-t1);
- 74. }
- 75.}
- 76.
- 77.//给Number类型增加一个div方法,调用起来更加方便。
- 78.Number.prototype.div = function (arg){
- 79. return accDiv(this, arg);
- 80.}
- 81.
- 82.//乘法函数,用来得到精确的乘法结果
- 83.//说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
- 84.//调用:accMul(arg1,arg2)
- 85.//返回值:arg1乘以 arg2的精确结果
- 86.function accMul(arg1,arg2)
- 87.{
- 88. var m=0,s1=arg1.toString(),s2=arg2.toString();
- 89. try{m+=s1.split(".")[1].length}catch(e){}
- 90. try{m+=s2.split(".")[1].length}catch(e){}
- 91. return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
- 92.}
- 93.
- 94.// 给Number类型增加一个mul方法,调用起来更加方便。
- 95.Number.prototype.mul = function (arg){
- 96. return accMul(arg, this);
- 97.}
- 98.
- 99.function accDiv(arg1, arg2) {
- 100. var t1 = 0, t2 = 0, r1, r2;
- 101. try { t1 = arg1.toString().split(".")[1].length } catch (e) { }
- 102. try { t2 = arg2.toString().split(".")[1].length } catch (e) { }
- 103. with (Math) {
- 104. r1 = Number(arg1.toString().replace(".", ""))
- 105. r2 = Number(arg2.toString().replace(".", ""))
- 106. return (r1 / r2) * pow(10, t2 - t1);
- 107. }
- 108.}
- 109.//给Number类型增加一个div方法,调用起来更加方便。
- 110.Number.prototype.div = function(arg) {
- 111. return accDiv(this, arg);
- 112.}
- 113.function accMul(arg1, arg2) {
- 114. var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
- 115. try { m += s1.split(".")[1].length } catch (e) { }
- 116. try { m += s2.split(".")[1].length } catch (e) { }
- 117. return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
- 118.}
- 119.Number.prototype.mul = function(arg) {
- 120. return accMul(arg, this);
- 121.}
- 122.function accAdd(arg1, arg2) {
- 123. var r1, r2, m, c;
- 124. try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
- 125. try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
- 126. c = Math.abs(r1 - r2);
- 127. m = Math.pow(10, Math.max(r1, r2))
- 128. if (c > 0) {
- 129. var cm = Math.pow(10, c);
- 130. if (r1 > r2) {
- 131. arg1 = Number(arg1.toString().replace(".", ""));
- 132. arg2 = Number(arg2.toString().replace(".", "")) * cm;
- 133. } else {
- 134. arg1 = Number(arg1.toString().replace(".", "")) * cm;
- 135. arg2 = Number(arg2.toString().replace(".", ""));
- 136. }
- 137. } else {
- 138. arg1 = Number(arg1.toString().replace(".", ""));
- 139. arg2 = Number(arg2.toString().replace(".", ""));
- 140. }
- 141. return (arg1 + arg2) / m
- 142.}
- 143.Number.prototype.add = function(arg) {
- 144. return accAdd(arg, this);
- 145.}
- 146.
- 147.//排序方法
- 148.function compareInt(x, y){
- 149. var iNum1 = parseInt(x[0]);//强制转换成int型;
- 150. var iNum2 = parseInt(y[0]);
- 151. if(iNum1 < iNum2){
- 152. return -1;
- 153. }else if(iNum1 > iNum2){
- 154. return 1;
- 155. }else{
- 156. return 0;
- 157. }
- 158.}
-
复制代码 |
|