formatMoney.js
2.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
let install = function (Vue) {
/**
* 分转元1,000,000.01
* @param {Number || String} s 需要转换的数据
* @return {String} 返回转换后的数据
* ***/
Vue.prototype.$fenFormatYuan = (s) => {
if (!s) {
return 0
}
s = s.toString()
if (s.length > 2) {
s = s.substring(0, s.length - 2) + "." + s.substring(s.length - 2, s.length);
if (/[^0-9\.]/.test(s)) {
return "";
}
s = s.replace(/^(\d*)$/, "$1.");
s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");
s = s.replace(".", ",");
var re = /(\d)(\d{3},)/;
while (re.test(s)) {
s = s.replace(re, "$1,$2");
}
s = s.replace(/,(\d\d)$/, ".$1");
return s.replace(/^\./, "0.")
} else {
if (s.length == 2) {
return "0." + s;
} else if (s.length == 1) {
return "0.0" + s;
}
}
},
/**
* 元转分
* @param {Number || String} s 需要转换的数据
* @param {Number || String} digit 转换倍数 默认100倍
* @return {Number} 返回转换后的数据
* ***/
Vue.prototype.$yuanFormatFen = (s, digit = 100) => {
if (!s) {
return ''
}
s = s.replace(",", "");
if (s.indexOf('.') > 0) {
if (s.split('.')[1].length == 2) {
s = s.replace(".", "");
} else if (s.split('.')[1].length == 1) {
s = s.replace(".", "") + '0';
} else if (s.split('.')[1].length == 0) {
s = s.replace(".", "") + '00';
}
} else {
s = s.replace(".", "") + '00';
}
return s
}
// 保留两位小数
Vue.prototype.$formatNum = (x) => {
if (!x) {
return '0.00'
}
var f = parseFloat(x);
if (isNaN(f)) {
return false;
}
var f = Math.round(x * 100) / 100;
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + 2) {
s += '0';
}
return s
}
Vue.prototype.$formatDot = (s) => {
if (!s) {
return ''
}
return s.replace(new RegExp(",", "gm"), "").replace(".", "");
}
// 数字转为千分位
Vue.prototype.$numMoney = (oldNum, isFixed) => {
if (oldNum) {
let n = Number(oldNum)
if (oldNum === "") return {};
let newNum = n.toLocaleString("en-US");
const numArr = newNum.split(".");
if (!isFixed) {
if (!numArr[1]) {
newNum = newNum + ".00";
} else if (numArr[1].length === 1) {
newNum = newNum + "0";
} else if (numArr[1].length >= 2) {
newNum = numArr[0] + "." + numArr[1].substr(0, 2);
}
}
return newNum
} else {
return '0.00'
}
}
}
export default { install };