util-helpers 4.16.1 → 4.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/util-helpers.js +1542 -4040
- package/dist/util-helpers.js.map +1 -1
- package/dist/util-helpers.min.js +1 -1
- package/dist/util-helpers.min.js.map +1 -1
- package/esm/ajax.js +50 -146
- package/esm/blobToDataURL.js +4 -34
- package/esm/bytesToSize.js +12 -37
- package/esm/calculateCursorPosition.js +30 -52
- package/esm/dataURLToBlob.js +14 -28
- package/esm/divide.js +24 -48
- package/esm/download.js +83 -164
- package/esm/fileReader.js +18 -64
- package/esm/filterTree.js +25 -57
- package/esm/findTreeNode.js +39 -69
- package/esm/findTreeNodes.js +35 -68
- package/esm/findTreeSelect.js +38 -76
- package/esm/formatBankCard.js +13 -43
- package/esm/formatMobile.js +17 -43
- package/esm/formatMoney.js +59 -139
- package/esm/index.js +55 -130
- package/esm/isBankCard.js +22 -57
- package/esm/isBusinessLicense.js +32 -78
- package/esm/isChinese.js +23 -66
- package/esm/isEmail.js +6 -21
- package/esm/isHMCard.js +5 -28
- package/esm/isIPv4.js +5 -22
- package/esm/isIPv6.js +5 -36
- package/esm/isIdCard.js +27 -66
- package/esm/isMobile.js +5 -20
- package/esm/isPassport.js +5 -22
- package/esm/isPassword.js +7 -48
- package/esm/isPostcode.js +5 -20
- package/esm/isPromiseLike.js +3 -18
- package/esm/isQQ.js +5 -20
- package/esm/isSocialCreditCode.js +28 -83
- package/esm/isSwiftCode.js +6 -25
- package/esm/isTWCard.js +11 -37
- package/esm/isTelephone.js +6 -27
- package/esm/isUrl.js +5 -44
- package/esm/isVehicle.js +5 -28
- package/esm/isWX.js +5 -20
- package/esm/listToTree.js +51 -122
- package/esm/minus.js +21 -39
- package/esm/normalizeString.js +8 -29
- package/esm/numberToChinese.js +96 -215
- package/esm/padZero.js +14 -36
- package/esm/parseIdCard.js +64 -132
- package/esm/plus.js +21 -39
- package/esm/randomString.js +13 -45
- package/esm/replaceChar.js +27 -77
- package/esm/round.js +14 -31
- package/esm/safeDate.js +12 -55
- package/esm/setDataURLPrefix.js +6 -29
- package/esm/strlen.js +14 -30
- package/esm/times.js +24 -42
- package/esm/transformFieldNames.js +37 -95
- package/esm/treeToList.js +25 -86
- package/esm/utils/config.js +4 -14
- package/esm/utils/constants.js +4 -4
- package/esm/utils/convertToString.js +4 -9
- package/esm/utils/devWarn.js +11 -11
- package/esm/utils/math.util.js +95 -181
- package/esm/utils/type/isBlob.js +4 -24
- package/esm/utils/type/isNaN.js +4 -19
- package/esm/utils/type/isNil.js +5 -13
- package/esm/utils/type/isNull.js +3 -18
- package/esm/utils/type/isNumber.js +4 -28
- package/esm/utils/type/isObject.js +4 -23
- package/esm/utils/type/isString.js +4 -19
- package/esm/utils/type/isSymbol.js +4 -19
- package/esm/utils/type/isType.js +3 -12
- package/esm/utils/type/isUndefined.js +3 -21
- package/esm/validatePassword.js +86 -237
- package/esm/waitTime.js +7 -26
- package/lib/ajax.js +51 -152
- package/lib/blobToDataURL.js +5 -40
- package/lib/bytesToSize.js +13 -43
- package/lib/calculateCursorPosition.js +31 -58
- package/lib/dataURLToBlob.js +15 -34
- package/lib/divide.js +26 -60
- package/lib/download.js +85 -169
- package/lib/fileReader.js +19 -70
- package/lib/filterTree.js +27 -66
- package/lib/findTreeNode.js +40 -77
- package/lib/findTreeNodes.js +36 -76
- package/lib/findTreeSelect.js +40 -82
- package/lib/formatBankCard.js +15 -50
- package/lib/formatMobile.js +19 -50
- package/lib/formatMoney.js +60 -150
- package/lib/index.js +117 -395
- package/lib/isBankCard.js +24 -64
- package/lib/isBusinessLicense.js +34 -85
- package/lib/isChinese.js +24 -73
- package/lib/isEmail.js +7 -27
- package/lib/isHMCard.js +7 -35
- package/lib/isIPv4.js +7 -29
- package/lib/isIPv6.js +7 -43
- package/lib/isIdCard.js +29 -73
- package/lib/isMobile.js +7 -27
- package/lib/isPassport.js +7 -29
- package/lib/isPassword.js +9 -55
- package/lib/isPostcode.js +7 -27
- package/lib/isPromiseLike.js +4 -24
- package/lib/isQQ.js +7 -27
- package/lib/isSocialCreditCode.js +30 -90
- package/lib/isSwiftCode.js +7 -32
- package/lib/isTWCard.js +13 -44
- package/lib/isTelephone.js +7 -33
- package/lib/isUrl.js +6 -50
- package/lib/isVehicle.js +7 -35
- package/lib/isWX.js +7 -27
- package/lib/listToTree.js +53 -131
- package/lib/minus.js +23 -51
- package/lib/normalizeString.js +10 -36
- package/lib/numberToChinese.js +98 -222
- package/lib/padZero.js +16 -43
- package/lib/parseIdCard.js +65 -138
- package/lib/plus.js +23 -51
- package/lib/randomString.js +14 -51
- package/lib/replaceChar.js +28 -83
- package/lib/round.js +15 -37
- package/lib/safeDate.js +13 -63
- package/lib/setDataURLPrefix.js +7 -35
- package/lib/strlen.js +16 -37
- package/lib/times.js +26 -53
- package/lib/transformFieldNames.js +38 -101
- package/lib/treeToList.js +27 -94
- package/lib/utils/config.js +6 -23
- package/lib/utils/constants.js +3 -11
- package/lib/utils/convertToString.js +6 -16
- package/lib/utils/devWarn.js +13 -17
- package/lib/utils/math.util.js +95 -185
- package/lib/utils/type/isBlob.js +6 -31
- package/lib/utils/type/isNaN.js +6 -26
- package/lib/utils/type/isNil.js +7 -20
- package/lib/utils/type/isNull.js +4 -24
- package/lib/utils/type/isNumber.js +6 -35
- package/lib/utils/type/isObject.js +5 -29
- package/lib/utils/type/isString.js +6 -26
- package/lib/utils/type/isSymbol.js +6 -26
- package/lib/utils/type/isType.js +4 -18
- package/lib/utils/type/isUndefined.js +4 -27
- package/lib/validatePassword.js +87 -244
- package/lib/waitTime.js +8 -32
- package/package.json +30 -34
- package/types/ajax.d.ts +38 -95
- package/types/blobToDataURL.d.ts +2 -2
- package/types/bytesToSize.d.ts +7 -6
- package/types/calculateCursorPosition.d.ts +10 -9
- package/types/dataURLToBlob.d.ts +5 -5
- package/types/divide.d.ts +2 -2
- package/types/download.d.ts +22 -38
- package/types/fileReader.d.ts +35 -2
- package/types/filterTree.d.ts +6 -7
- package/types/findTreeNode.d.ts +5 -7
- package/types/findTreeNodes.d.ts +5 -7
- package/types/findTreeSelect.d.ts +5 -7
- package/types/formatBankCard.d.ts +8 -5
- package/types/formatMobile.d.ts +7 -4
- package/types/formatMoney.d.ts +8 -7
- package/types/index.d.ts +125 -55
- package/types/isBankCard.d.ts +9 -8
- package/types/isBusinessLicense.d.ts +8 -5
- package/types/isChinese.d.ts +9 -8
- package/types/isEmail.d.ts +1 -1
- package/types/isHMCard.d.ts +2 -2
- package/types/isIPv4.d.ts +1 -1
- package/types/isIPv6.d.ts +1 -1
- package/types/isIdCard.d.ts +8 -7
- package/types/isMobile.d.ts +1 -1
- package/types/isPassport.d.ts +2 -2
- package/types/isPassword.d.ts +4 -7
- package/types/isPostcode.d.ts +1 -1
- package/types/isPromiseLike.d.ts +1 -1
- package/types/isQQ.d.ts +1 -1
- package/types/isSocialCreditCode.d.ts +8 -5
- package/types/isSwiftCode.d.ts +2 -2
- package/types/isTWCard.d.ts +6 -5
- package/types/isTelephone.d.ts +1 -1
- package/types/isUrl.d.ts +2 -2
- package/types/isVehicle.d.ts +2 -2
- package/types/isWX.d.ts +1 -1
- package/types/listToTree.d.ts +12 -12
- package/types/minus.d.ts +3 -2
- package/types/normalizeString.d.ts +2 -2
- package/types/numberToChinese.d.ts +13 -12
- package/types/padZero.d.ts +2 -2
- package/types/parseIdCard.d.ts +17 -56
- package/types/plus.d.ts +3 -2
- package/types/randomString.d.ts +2 -2
- package/types/replaceChar.d.ts +15 -11
- package/types/round.d.ts +2 -2
- package/types/safeDate.d.ts +24 -2
- package/types/setDataURLPrefix.d.ts +5 -5
- package/types/strlen.d.ts +1 -1
- package/types/times.d.ts +3 -2
- package/types/transformFieldNames.d.ts +12 -10
- package/types/treeToList.d.ts +1 -1
- package/types/utils/config.d.ts +6 -5
- package/types/utils/constants.d.ts +2 -2
- package/types/utils/convertToString.d.ts +1 -1
- package/types/utils/devWarn.d.ts +1 -1
- package/types/utils/math.util.d.ts +15 -9
- package/types/utils/type/index.d.ts +7 -0
- package/types/utils/type/isArguments.d.ts +1 -1
- package/types/utils/type/isArray.d.ts +1 -1
- package/types/utils/type/isArrayBuffer.d.ts +1 -1
- package/types/utils/type/isBlob.d.ts +1 -1
- package/types/utils/type/isBoolean.d.ts +1 -1
- package/types/utils/type/isDate.d.ts +1 -1
- package/types/utils/type/isError.d.ts +1 -1
- package/types/utils/type/isFunction.d.ts +1 -1
- package/types/utils/type/isMap.d.ts +1 -1
- package/types/utils/type/isNaN.d.ts +1 -1
- package/types/utils/type/isNil.d.ts +1 -1
- package/types/utils/type/isNull.d.ts +1 -1
- package/types/utils/type/isNumber.d.ts +1 -1
- package/types/utils/type/isObject.d.ts +1 -1
- package/types/utils/type/isRegExp.d.ts +1 -1
- package/types/utils/type/isSet.d.ts +1 -1
- package/types/utils/type/isString.d.ts +1 -1
- package/types/utils/type/isSymbol.d.ts +1 -1
- package/types/utils/type/isType.d.ts +1 -1
- package/types/utils/type/isUndefined.d.ts +1 -1
- package/types/utils/type/isWeakMap.d.ts +1 -1
- package/types/utils/type/isWeakSet.d.ts +1 -1
- package/types/validatePassword.d.ts +17 -48
- package/types/waitTime.d.ts +2 -2
- package/esm/interface.doc.js +0 -125
- package/esm/interface.type.js +0 -17
- package/esm/utils/type/index.js +0 -29
- package/esm/utils/type/isArguments.js +0 -22
- package/esm/utils/type/isArray.js +0 -22
- package/esm/utils/type/isArrayBuffer.js +0 -25
- package/esm/utils/type/isBoolean.js +0 -22
- package/esm/utils/type/isDate.js +0 -22
- package/esm/utils/type/isError.js +0 -22
- package/esm/utils/type/isFunction.js +0 -22
- package/esm/utils/type/isMap.js +0 -22
- package/esm/utils/type/isRegExp.js +0 -22
- package/esm/utils/type/isSet.js +0 -22
- package/esm/utils/type/isWeakMap.js +0 -22
- package/esm/utils/type/isWeakSet.js +0 -22
- package/lib/interface.doc.js +0 -127
- package/lib/interface.type.js +0 -5
- package/lib/utils/type/index.js +0 -146
- package/lib/utils/type/isArguments.js +0 -29
- package/lib/utils/type/isArray.js +0 -29
- package/lib/utils/type/isArrayBuffer.js +0 -32
- package/lib/utils/type/isBoolean.js +0 -29
- package/lib/utils/type/isDate.js +0 -29
- package/lib/utils/type/isError.js +0 -29
- package/lib/utils/type/isFunction.js +0 -29
- package/lib/utils/type/isMap.js +0 -29
- package/lib/utils/type/isRegExp.js +0 -29
- package/lib/utils/type/isSet.js +0 -29
- package/lib/utils/type/isWeakMap.js +0 -29
- package/lib/utils/type/isWeakSet.js +0 -29
- package/types/interface.type.d.ts +0 -2
package/lib/utils/math.util.js
CHANGED
|
@@ -1,204 +1,114 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
exports.float2Fixed = float2Fixed;
|
|
9
|
-
exports.isScientificNumber = isScientificNumber;
|
|
10
|
-
exports.scientificToNumber = scientificToNumber;
|
|
11
|
-
exports.strip = strip;
|
|
12
|
-
exports.transformEffectiveNumber = transformEffectiveNumber;
|
|
13
|
-
exports.trimLeftZero = trimLeftZero;
|
|
14
|
-
var _constants = require("./constants");
|
|
15
|
-
var _devWarn = _interopRequireDefault(require("./devWarn"));
|
|
16
|
-
var _type = require("./type");
|
|
17
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
18
|
-
/**
|
|
19
|
-
* 参考: https://github.com/nefe/number-precision/blob/master/src/index.ts
|
|
20
|
-
*
|
|
21
|
-
* 解决浮动运算问题,避免小数点后产生多位数和计算精度损失。
|
|
22
|
-
* 问题示例:2.3 + 2.4 = 4.699999999999999,1.0 - 0.9 = 0.09999999999999998
|
|
23
|
-
*/
|
|
3
|
+
var constants = require('./constants.js');
|
|
4
|
+
var devWarn = require('./devWarn.js');
|
|
5
|
+
var isNumber = require('./type/isNumber.js');
|
|
6
|
+
var isString = require('./type/isString.js');
|
|
7
|
+
var isSymbol = require('./type/isSymbol.js');
|
|
24
8
|
|
|
25
|
-
/**
|
|
26
|
-
* 将值转换为有效数值
|
|
27
|
-
*
|
|
28
|
-
* @param {*} value 要转换的值
|
|
29
|
-
* @returns {number|string} 有效数值
|
|
30
|
-
*/
|
|
31
9
|
function transformEffectiveNumber(value) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
ret = Number.NaN;
|
|
10
|
+
var ret;
|
|
11
|
+
if (isString(value)) {
|
|
12
|
+
ret = value.trim();
|
|
13
|
+
if (ret === '') {
|
|
14
|
+
ret = Number(ret);
|
|
15
|
+
}
|
|
16
|
+
else if (Number.isNaN(Number(ret))) {
|
|
17
|
+
ret = Number.NaN;
|
|
18
|
+
}
|
|
42
19
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
ret
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// @ts-ignore
|
|
59
|
-
return ret;
|
|
20
|
+
else if (isSymbol(value)) {
|
|
21
|
+
ret = Number.NaN;
|
|
22
|
+
}
|
|
23
|
+
else if (!isNumber(value)) {
|
|
24
|
+
ret = Number(value);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
ret = value;
|
|
28
|
+
}
|
|
29
|
+
if (Number.isNaN(ret)) {
|
|
30
|
+
return Number.NaN;
|
|
31
|
+
}
|
|
32
|
+
return ret;
|
|
60
33
|
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* 是否为科学计数法数字
|
|
64
|
-
*
|
|
65
|
-
* @param {string} num 检查值
|
|
66
|
-
* @returns {boolean}
|
|
67
|
-
*/
|
|
68
34
|
function isScientificNumber(num) {
|
|
69
|
-
|
|
35
|
+
return /\d+\.?\d*e[+-]*\d+/i.test(num);
|
|
70
36
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
*
|
|
75
|
-
* @param {number} num 输入数
|
|
76
|
-
* @param {number} [precision=12] 小数点的精度
|
|
77
|
-
* @returns {number}
|
|
78
|
-
* @example
|
|
79
|
-
*
|
|
80
|
-
* strip(0.09999999999999998)=0.1
|
|
81
|
-
*/
|
|
82
|
-
function strip(num) {
|
|
83
|
-
var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 12;
|
|
84
|
-
return +parseFloat(num.toPrecision(precision));
|
|
37
|
+
function strip(num, precision) {
|
|
38
|
+
if (precision === void 0) { precision = 12; }
|
|
39
|
+
return +parseFloat(num.toPrecision(precision));
|
|
85
40
|
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* 计算数字的小数点长度,支持科学记数法
|
|
89
|
-
*
|
|
90
|
-
* @param {number|string} num 输入数
|
|
91
|
-
* @returns {number} 小数点长度
|
|
92
|
-
*/
|
|
93
41
|
function digitLength(num) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return len > 0 ? len : 0;
|
|
42
|
+
var eSplit = num.toString().split(/e/i);
|
|
43
|
+
var len = (eSplit[0].split('.')[1] || '').length - +(eSplit[1] || 0);
|
|
44
|
+
return len > 0 ? len : 0;
|
|
98
45
|
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* 把小数转成整数,支持科学计数法。如果是小数则放大成整数
|
|
102
|
-
*
|
|
103
|
-
* @param {number|string} num 输入数
|
|
104
|
-
* @returns {number}
|
|
105
|
-
*/
|
|
106
46
|
function float2Fixed(num) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
47
|
+
var strNum = String(num);
|
|
48
|
+
if (!isScientificNumber(strNum)) {
|
|
49
|
+
return Number(strNum.replace('.', ''));
|
|
50
|
+
}
|
|
51
|
+
var dLen = digitLength(num);
|
|
52
|
+
return dLen > 0 ? strip(+num * Math.pow(10, dLen)) : +num;
|
|
113
53
|
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* 检测数字是否越界,如果越界给出提示
|
|
117
|
-
* @param {number} num 输入数
|
|
118
|
-
* @returns
|
|
119
|
-
*/
|
|
120
54
|
function checkBoundary(num) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
55
|
+
if (+num > constants.MAX_SAFE_INTEGER || +num < constants.MIN_SAFE_INTEGER) {
|
|
56
|
+
devWarn("".concat(num, " is beyond boundary when transfer to integer, the results may not be accurate"));
|
|
57
|
+
}
|
|
124
58
|
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* 去掉左边数字0
|
|
128
|
-
*
|
|
129
|
-
* @param {string} num 数字字符串
|
|
130
|
-
* @returns {string}
|
|
131
|
-
*/
|
|
132
59
|
function trimLeftZero(num) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
60
|
+
var reg = /^([+-])?(0+)([0-9.]+)$/;
|
|
61
|
+
var result = reg.exec(num);
|
|
62
|
+
var sign;
|
|
63
|
+
if (result) {
|
|
64
|
+
sign = result[1] || '';
|
|
65
|
+
return sign + (result[3][0] === '.' ? '0' + result[3] : result[3]);
|
|
66
|
+
}
|
|
67
|
+
return num;
|
|
141
68
|
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* 科学计数法转换成普通数字
|
|
145
|
-
*
|
|
146
|
-
* JavaScript在以下情景会自动将数值转换为科学计数法:
|
|
147
|
-
* 1.小数点前的数字个数大于等于22位
|
|
148
|
-
* 2.小数点前边是0,小数点后十分位(包含十分位)之后连续零的个数大于等于6个
|
|
149
|
-
*
|
|
150
|
-
* @param {string | number} num 科学计数法数字
|
|
151
|
-
* @returns {string | number} 转换后的数字字符串
|
|
152
|
-
*/
|
|
153
69
|
function scientificToNumber(num) {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
/** @type string */
|
|
160
|
-
var ret;
|
|
161
|
-
var zero = '0';
|
|
162
|
-
var parts = strNum.toLowerCase().split('e');
|
|
163
|
-
var e = parts.pop(); // 存储指数
|
|
164
|
-
// @ts-ignore
|
|
165
|
-
var l = Math.abs(e); // 取绝对值,l-1就是0的个数
|
|
166
|
-
// @ts-ignore
|
|
167
|
-
var sign = e / l; //判断正负
|
|
168
|
-
var coeff_array = parts[0].split('.'); // 将系数按照小数点拆分
|
|
169
|
-
|
|
170
|
-
// 如果是小数
|
|
171
|
-
if (sign === -1) {
|
|
172
|
-
// 整数部分
|
|
173
|
-
var intVal = trimLeftZero(coeff_array[0]);
|
|
174
|
-
|
|
175
|
-
// 整数部分大于科学计数后面部分
|
|
176
|
-
// 如: 10e-1, 10.2e-1
|
|
177
|
-
if (intVal.length > l) {
|
|
178
|
-
var thanLen = intVal.length - l;
|
|
179
|
-
var dec = coeff_array[1] || '';
|
|
180
|
-
ret = intVal.slice(0, thanLen);
|
|
181
|
-
|
|
182
|
-
// 处理 10e-1, 100e-1
|
|
183
|
-
if (intVal.slice(thanLen) !== '0' || dec) {
|
|
184
|
-
ret += '.' + intVal.slice(thanLen) + dec;
|
|
185
|
-
}
|
|
186
|
-
} else {
|
|
187
|
-
// 整数部分小于等于科学计数后面部分
|
|
188
|
-
// 如: 1e-1, 0.2e-1, 1.2e-2, 1.2e-1
|
|
189
|
-
ret = zero + '.' + new Array(l - intVal.length + 1).join(zero) + coeff_array.join('');
|
|
70
|
+
var strNum = String(num);
|
|
71
|
+
if (!isScientificNumber(strNum)) {
|
|
72
|
+
return num;
|
|
190
73
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
var
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
74
|
+
var ret;
|
|
75
|
+
var zero = '0';
|
|
76
|
+
var parts = strNum.toLowerCase().split('e');
|
|
77
|
+
var e = parts.pop();
|
|
78
|
+
var l = Math.abs(e);
|
|
79
|
+
var sign = e / l;
|
|
80
|
+
var coeff_array = parts[0].split('.');
|
|
81
|
+
if (sign === -1) {
|
|
82
|
+
var intVal = trimLeftZero(coeff_array[0]);
|
|
83
|
+
if (intVal.length > l) {
|
|
84
|
+
var thanLen = intVal.length - l;
|
|
85
|
+
var dec = coeff_array[1] || '';
|
|
86
|
+
ret = intVal.slice(0, thanLen);
|
|
87
|
+
if (intVal.slice(thanLen) !== '0' || dec) {
|
|
88
|
+
ret += '.' + intVal.slice(thanLen) + dec;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
ret = zero + '.' + new Array(l - intVal.length + 1).join(zero) + coeff_array.join('');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
var dec = coeff_array[1] || '';
|
|
97
|
+
if (l - dec.length < 0) {
|
|
98
|
+
ret = trimLeftZero(coeff_array[0] + dec.substring(0, l)) + '.' + dec.substring(l);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
ret = coeff_array.join('') + new Array(l - dec.length + 1).join(zero);
|
|
102
|
+
}
|
|
201
103
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
104
|
+
return trimLeftZero(ret);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
exports.checkBoundary = checkBoundary;
|
|
108
|
+
exports.digitLength = digitLength;
|
|
109
|
+
exports.float2Fixed = float2Fixed;
|
|
110
|
+
exports.isScientificNumber = isScientificNumber;
|
|
111
|
+
exports.scientificToNumber = scientificToNumber;
|
|
112
|
+
exports.strip = strip;
|
|
113
|
+
exports.transformEffectiveNumber = transformEffectiveNumber;
|
|
114
|
+
exports.trimLeftZero = trimLeftZero;
|
package/lib/utils/type/isBlob.js
CHANGED
|
@@ -1,34 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var isType = require('./isType.js');
|
|
2
4
|
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _isType = _interopRequireDefault(require("./isType"));
|
|
8
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
9
|
-
/**
|
|
10
|
-
* 检查值是否为Blob对象<br/><br/>
|
|
11
|
-
*
|
|
12
|
-
* <em style="font-weight: bold;">注意:该方法仅适用于浏览器端。</em>
|
|
13
|
-
*
|
|
14
|
-
* @static
|
|
15
|
-
* @alias module:Type.isBlob
|
|
16
|
-
* @since 4.16.0
|
|
17
|
-
* @param {*} value 检查值
|
|
18
|
-
* @returns {boolean} 是否为Blob对象
|
|
19
|
-
* @example
|
|
20
|
-
*
|
|
21
|
-
* isBlob(new Blob(['a']))
|
|
22
|
-
* // => true
|
|
23
|
-
*
|
|
24
|
-
* isBlob({})
|
|
25
|
-
* // => false
|
|
26
|
-
*
|
|
27
|
-
* isBlob('2012')
|
|
28
|
-
* // => false
|
|
29
|
-
*/
|
|
30
5
|
function isBlob(value) {
|
|
31
|
-
|
|
6
|
+
return isType(value, 'Blob');
|
|
32
7
|
}
|
|
33
|
-
|
|
34
|
-
exports
|
|
8
|
+
|
|
9
|
+
module.exports = isBlob;
|
package/lib/utils/type/isNaN.js
CHANGED
|
@@ -1,29 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var isType = require('./isType.js');
|
|
2
4
|
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _isType = _interopRequireDefault(require("./isType"));
|
|
8
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
9
|
-
/**
|
|
10
|
-
* 检查值是否为NaN
|
|
11
|
-
*
|
|
12
|
-
* @static
|
|
13
|
-
* @alias module:Type.isNaN
|
|
14
|
-
* @since 1.1.0
|
|
15
|
-
* @param {*} value 检查值
|
|
16
|
-
* @returns {boolean} 是否为NaN
|
|
17
|
-
* @example
|
|
18
|
-
*
|
|
19
|
-
* isNaN(NaN)
|
|
20
|
-
* // => true
|
|
21
|
-
*
|
|
22
|
-
* isNaN(1)
|
|
23
|
-
* // => false
|
|
24
|
-
*/
|
|
25
5
|
function _isNaN(value) {
|
|
26
|
-
|
|
6
|
+
return isType(value, 'Number') && isNaN(value);
|
|
27
7
|
}
|
|
28
|
-
|
|
29
|
-
exports
|
|
8
|
+
|
|
9
|
+
module.exports = _isNaN;
|
package/lib/utils/type/isNil.js
CHANGED
|
@@ -1,23 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var isUndefined = require('./isUndefined.js');
|
|
4
|
+
var isNull = require('./isNull.js');
|
|
2
5
|
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _isUndefined = _interopRequireDefault(require("./isUndefined"));
|
|
8
|
-
var _isNull = _interopRequireDefault(require("./isNull"));
|
|
9
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
10
|
-
/**
|
|
11
|
-
* 检查值是否为 undefined 或 null
|
|
12
|
-
*
|
|
13
|
-
* @static
|
|
14
|
-
* @alias module:Type.isNaN
|
|
15
|
-
* @since 4.3.0
|
|
16
|
-
* @param {*} value 检查值
|
|
17
|
-
* @returns {boolean} 是否为 undefined 或 null
|
|
18
|
-
*/
|
|
19
6
|
function isNil(value) {
|
|
20
|
-
|
|
7
|
+
return isUndefined(value) || isNull(value);
|
|
21
8
|
}
|
|
22
|
-
|
|
23
|
-
exports
|
|
9
|
+
|
|
10
|
+
module.exports = isNil;
|
package/lib/utils/type/isNull.js
CHANGED
|
@@ -1,27 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
/**
|
|
8
|
-
* 检查值是否为Null
|
|
9
|
-
*
|
|
10
|
-
* @static
|
|
11
|
-
* @alias module:Type.isNull
|
|
12
|
-
* @since 1.1.0
|
|
13
|
-
* @param {*} value 检查值
|
|
14
|
-
* @returns {boolean} 是否为Null
|
|
15
|
-
* @example
|
|
16
|
-
*
|
|
17
|
-
* isNull(null)
|
|
18
|
-
* // => true
|
|
19
|
-
*
|
|
20
|
-
* isNull(void 0)
|
|
21
|
-
* // => false
|
|
22
|
-
*/
|
|
23
3
|
function isNull(value) {
|
|
24
|
-
|
|
4
|
+
return value === null;
|
|
25
5
|
}
|
|
26
|
-
|
|
27
|
-
exports
|
|
6
|
+
|
|
7
|
+
module.exports = isNull;
|
|
@@ -1,38 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var isType = require('./isType.js');
|
|
2
4
|
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _isType = _interopRequireDefault(require("./isType"));
|
|
8
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
9
|
-
/**
|
|
10
|
-
* 检查值是否为Number
|
|
11
|
-
*
|
|
12
|
-
* @static
|
|
13
|
-
* @alias module:Type.isNumber
|
|
14
|
-
* @since 1.1.0
|
|
15
|
-
* @param {*} value 检查值
|
|
16
|
-
* @returns {boolean} 是否为Number
|
|
17
|
-
* @example
|
|
18
|
-
*
|
|
19
|
-
* isNumber(1)
|
|
20
|
-
* // => true
|
|
21
|
-
*
|
|
22
|
-
* isNumber(Number.MIN_VALUE)
|
|
23
|
-
* // => true
|
|
24
|
-
*
|
|
25
|
-
* isNumber(Infinity)
|
|
26
|
-
* // => true
|
|
27
|
-
*
|
|
28
|
-
* isNumber(NaN)
|
|
29
|
-
* // => true
|
|
30
|
-
*
|
|
31
|
-
* isNumber('1')
|
|
32
|
-
* // => false
|
|
33
|
-
*/
|
|
34
5
|
function isNumber(value) {
|
|
35
|
-
|
|
6
|
+
return isType(value, 'Number');
|
|
36
7
|
}
|
|
37
|
-
|
|
38
|
-
exports
|
|
8
|
+
|
|
9
|
+
module.exports = isNumber;
|
|
@@ -1,32 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
8
|
-
/**
|
|
9
|
-
* 检查值是否为Object
|
|
10
|
-
*
|
|
11
|
-
* @static
|
|
12
|
-
* @alias module:Type.isObject
|
|
13
|
-
* @since 1.1.0
|
|
14
|
-
* @param {*} value 检查值
|
|
15
|
-
* @returns {boolean} 是否为Object
|
|
16
|
-
* @example
|
|
17
|
-
*
|
|
18
|
-
* isObject({})
|
|
19
|
-
* // => true
|
|
20
|
-
*
|
|
21
|
-
* isObject([1,2,3])
|
|
22
|
-
* // => true
|
|
23
|
-
*
|
|
24
|
-
* isObject(null)
|
|
25
|
-
* // => false
|
|
26
|
-
*/
|
|
27
3
|
function isObject(value) {
|
|
28
|
-
|
|
29
|
-
|
|
4
|
+
var type = typeof value;
|
|
5
|
+
return value != null && (type === 'object' || type === 'function');
|
|
30
6
|
}
|
|
31
|
-
|
|
32
|
-
exports
|
|
7
|
+
|
|
8
|
+
module.exports = isObject;
|
|
@@ -1,29 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var isType = require('./isType.js');
|
|
2
4
|
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _isType = _interopRequireDefault(require("./isType"));
|
|
8
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
9
|
-
/**
|
|
10
|
-
* 检查值是否为String
|
|
11
|
-
*
|
|
12
|
-
* @static
|
|
13
|
-
* @alias module:Type.isString
|
|
14
|
-
* @since 1.1.0
|
|
15
|
-
* @param {*} value 检查值
|
|
16
|
-
* @returns {boolean} 是否为String
|
|
17
|
-
* @example
|
|
18
|
-
*
|
|
19
|
-
* isString('abc')
|
|
20
|
-
* // => true
|
|
21
|
-
*
|
|
22
|
-
* isString(1)
|
|
23
|
-
* // => false
|
|
24
|
-
*/
|
|
25
5
|
function isString(value) {
|
|
26
|
-
|
|
6
|
+
return isType(value, 'String');
|
|
27
7
|
}
|
|
28
|
-
|
|
29
|
-
exports
|
|
8
|
+
|
|
9
|
+
module.exports = isString;
|
|
@@ -1,29 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var isType = require('./isType.js');
|
|
2
4
|
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _isType = _interopRequireDefault(require("./isType"));
|
|
8
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
9
|
-
/**
|
|
10
|
-
* 检查值是否为Symbol
|
|
11
|
-
*
|
|
12
|
-
* @static
|
|
13
|
-
* @alias module:Type.isSymbol
|
|
14
|
-
* @since 1.1.0
|
|
15
|
-
* @param {*} value 检查值
|
|
16
|
-
* @returns {boolean} 是否为Symbol
|
|
17
|
-
* @example
|
|
18
|
-
*
|
|
19
|
-
* isSymbol(Symbol.iterator)
|
|
20
|
-
* // => true
|
|
21
|
-
*
|
|
22
|
-
* isSymbol("abc")
|
|
23
|
-
* // => false
|
|
24
|
-
*/
|
|
25
5
|
function isSymbol(value) {
|
|
26
|
-
|
|
6
|
+
return isType(value, 'Symbol');
|
|
27
7
|
}
|
|
28
|
-
|
|
29
|
-
exports
|
|
8
|
+
|
|
9
|
+
module.exports = isSymbol;
|
package/lib/utils/type/isType.js
CHANGED
|
@@ -1,22 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
3
|
var toString = Object.prototype.toString;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* 检测值的 `toString` 类型
|
|
11
|
-
*
|
|
12
|
-
* @private
|
|
13
|
-
* @since 1.1.0
|
|
14
|
-
* @param {*} value 检查值
|
|
15
|
-
* @param {string} typename 类型名称
|
|
16
|
-
* @returns {boolean} 返回值的 `toString` 类型是否匹配
|
|
17
|
-
*/
|
|
18
4
|
function isType(value, typename) {
|
|
19
|
-
|
|
5
|
+
return toString.call(value) === "[object ".concat(typename, "]");
|
|
20
6
|
}
|
|
21
|
-
|
|
22
|
-
exports
|
|
7
|
+
|
|
8
|
+
module.exports = isType;
|
|
@@ -1,30 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
/**
|
|
8
|
-
* 检查值是否为Undefined
|
|
9
|
-
*
|
|
10
|
-
* @static
|
|
11
|
-
* @alias module:Type.isUndefined
|
|
12
|
-
* @since 1.1.0
|
|
13
|
-
* @param {*} value 检查值
|
|
14
|
-
* @returns {boolean} 是否为Undefined
|
|
15
|
-
* @example
|
|
16
|
-
*
|
|
17
|
-
* isUndefined(undefined)
|
|
18
|
-
* // => true
|
|
19
|
-
*
|
|
20
|
-
* isUndefined(void 0)
|
|
21
|
-
* // => true
|
|
22
|
-
*
|
|
23
|
-
* isUndefined(null)
|
|
24
|
-
* // => false
|
|
25
|
-
*/
|
|
26
3
|
function isUndefined(value) {
|
|
27
|
-
|
|
4
|
+
return value === void 0;
|
|
28
5
|
}
|
|
29
|
-
|
|
30
|
-
exports
|
|
6
|
+
|
|
7
|
+
module.exports = isUndefined;
|