util-helpers 4.0.4 → 4.0.8
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/dist/util-helpers.js +120 -76
- package/dist/util-helpers.min.js +1 -1
- package/dist/util-helpers.min.js.map +1 -1
- package/esm/divide.js +17 -8
- package/esm/formatBankCard.js +1 -1
- package/esm/formatMoney.js +7 -5
- package/esm/isBusinessLicense.js +2 -2
- package/esm/isSocialCreditCode.js +2 -2
- package/esm/minus.js +17 -8
- package/esm/parseIdCard.js +2 -2
- package/esm/plus.js +17 -8
- package/esm/replaceChar.js +9 -11
- package/esm/times.js +17 -8
- package/esm/utils/convertToString.js +2 -11
- package/esm/utils/math.util.js +4 -5
- package/lib/divide.js +29 -8
- package/lib/formatBankCard.js +1 -1
- package/lib/formatMoney.js +6 -5
- package/lib/isBusinessLicense.js +2 -2
- package/lib/isSocialCreditCode.js +2 -2
- package/lib/minus.js +29 -8
- package/lib/parseIdCard.js +2 -2
- package/lib/plus.js +29 -8
- package/lib/replaceChar.js +9 -11
- package/lib/times.js +29 -8
- package/lib/utils/convertToString.js +2 -12
- package/lib/utils/math.util.js +4 -3
- package/package.json +2 -2
- package/types/divide.d.ts +2 -4
- package/types/minus.d.ts +2 -4
- package/types/parseIdCard.d.ts +15 -2
- package/types/plus.d.ts +2 -4
- package/types/replaceChar.d.ts +3 -3
- package/types/times.d.ts +2 -4
- package/types/utils/convertToString.d.ts +2 -2
- package/types/utils/math.util.d.ts +7 -0
package/esm/isBusinessLicense.js
CHANGED
|
@@ -75,9 +75,9 @@ function isBusinessLicense(value) {
|
|
|
75
75
|
} // 前14位
|
|
76
76
|
|
|
77
77
|
|
|
78
|
-
var preCode = valueStr.
|
|
78
|
+
var preCode = valueStr.substring(0, 14); // 校验码
|
|
79
79
|
|
|
80
|
-
var lastCode = valueStr.
|
|
80
|
+
var lastCode = valueStr.substring(valueStr.length - 1); // 计算校验码
|
|
81
81
|
|
|
82
82
|
var checkCode = sumCheckCode(preCode);
|
|
83
83
|
return lastCode === String(checkCode);
|
|
@@ -94,9 +94,9 @@ function isSocialCreditCode(value) {
|
|
|
94
94
|
} // 前17位
|
|
95
95
|
|
|
96
96
|
|
|
97
|
-
var preCode = valueStr.
|
|
97
|
+
var preCode = valueStr.substring(0, 17); // 校验码
|
|
98
98
|
|
|
99
|
-
var lastCode = valueStr.
|
|
99
|
+
var lastCode = valueStr.substring(valueStr.length - 1); // 计算校验码
|
|
100
100
|
|
|
101
101
|
var checkCode = sumCheckCode(preCode);
|
|
102
102
|
return lastCode === checkCode;
|
package/esm/minus.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
1
2
|
import { digitLength } from './utils/math.util';
|
|
2
3
|
import times from './times';
|
|
4
|
+
import { isNumber, isNaN, isString } from './utils/type';
|
|
3
5
|
/**
|
|
4
6
|
* 精确减法,支持多个数相减
|
|
5
7
|
*
|
|
6
8
|
* @static
|
|
7
9
|
* @alias module:Math.minus
|
|
8
10
|
* @since 3.1.0
|
|
9
|
-
* @param {number|string}
|
|
10
|
-
* @param {number|string} num2 相减的第二个数
|
|
11
|
-
* @param {...number|string} others 相减的第其余数
|
|
11
|
+
* @param {...number|string} nums 相减的数
|
|
12
12
|
* @returns {number} 差
|
|
13
13
|
* @example
|
|
14
14
|
*
|
|
@@ -22,14 +22,23 @@ import times from './times';
|
|
|
22
22
|
* // => 0
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
-
function minus(
|
|
26
|
-
for (var _len = arguments.length,
|
|
27
|
-
|
|
25
|
+
function minus() {
|
|
26
|
+
for (var _len = arguments.length, nums = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
27
|
+
nums[_key] = arguments[_key];
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
var num1 = nums[0],
|
|
31
|
+
num2 = nums[1],
|
|
32
|
+
rest = nums.slice(2);
|
|
33
|
+
|
|
34
|
+
if (rest.length > 0) {
|
|
35
|
+
return minus.apply(void 0, [minus(num1, num2)].concat(_toConsumableArray(rest)));
|
|
36
|
+
} // 兼容处理,如果第2个参数为非数字或字符串时,返回第一个参数
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
if ((!isNumber(num2) || isNaN(num2)) && !isString(num2)) {
|
|
31
40
|
// @ts-ignore
|
|
32
|
-
return
|
|
41
|
+
return num1;
|
|
33
42
|
}
|
|
34
43
|
|
|
35
44
|
var baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
|
package/esm/parseIdCard.js
CHANGED
|
@@ -46,7 +46,7 @@ var Provinces = [// 华北地区:北京市|110000,天津市|120000,河北
|
|
|
46
46
|
* @since 4.0.0
|
|
47
47
|
* @see 参考 {@link https://baike.baidu.com/item/居民身份证号码|居民身份证号码}
|
|
48
48
|
* @param {string} id 身份证号码,支持15位
|
|
49
|
-
* @returns
|
|
49
|
+
* @returns null 或 省份、生日、性别,省/市/区/年/月/日/性别编码
|
|
50
50
|
* @example
|
|
51
51
|
* parseIdCard('123456789123456');
|
|
52
52
|
* // => null
|
|
@@ -124,7 +124,7 @@ function parseIdCard(id) {
|
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
var birthday = "".concat(origin.year, "-").concat(origin.month, "-").concat(origin.day);
|
|
127
|
-
var gender = Number(origin.gender) % 2 === 0 ? '女' : '男'; // const region = Regions.find(item => item[0] === origin.province?.
|
|
127
|
+
var gender = Number(origin.gender) % 2 === 0 ? '女' : '男'; // const region = Regions.find(item => item[0] === origin.province?.substring(0, 1));
|
|
128
128
|
|
|
129
129
|
return {
|
|
130
130
|
// region,
|
package/esm/plus.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
1
2
|
import { digitLength } from './utils/math.util';
|
|
2
3
|
import times from './times';
|
|
4
|
+
import { isNumber, isNaN, isString } from './utils/type';
|
|
3
5
|
/**
|
|
4
6
|
* 精确加法,支持多个数相加
|
|
5
7
|
*
|
|
6
8
|
* @static
|
|
7
9
|
* @alias module:Math.plus
|
|
8
10
|
* @since 3.1.0
|
|
9
|
-
* @param {number|string}
|
|
10
|
-
* @param {number|string} num2 相加的第二个数
|
|
11
|
-
* @param {...number|string} others 相加的其余数
|
|
11
|
+
* @param {...number|string} nums 相加的数
|
|
12
12
|
* @returns {number} 总和
|
|
13
13
|
* @example
|
|
14
14
|
*
|
|
@@ -22,14 +22,23 @@ import times from './times';
|
|
|
22
22
|
* // => 1
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
-
function plus(
|
|
26
|
-
for (var _len = arguments.length,
|
|
27
|
-
|
|
25
|
+
function plus() {
|
|
26
|
+
for (var _len = arguments.length, nums = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
27
|
+
nums[_key] = arguments[_key];
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
var num1 = nums[0],
|
|
31
|
+
num2 = nums[1],
|
|
32
|
+
rest = nums.slice(2);
|
|
33
|
+
|
|
34
|
+
if (rest.length > 0) {
|
|
35
|
+
return plus.apply(void 0, [plus(num1, num2)].concat(_toConsumableArray(rest)));
|
|
36
|
+
} // 兼容处理,如果第2个参数为非数字或字符串时,返回第一个参数
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
if ((!isNumber(num2) || isNaN(num2)) && !isString(num2)) {
|
|
31
40
|
// @ts-ignore
|
|
32
|
-
return
|
|
41
|
+
return num1;
|
|
33
42
|
}
|
|
34
43
|
|
|
35
44
|
var baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
|
package/esm/replaceChar.js
CHANGED
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
* // => 6228 **** **** **** 018
|
|
37
37
|
*
|
|
38
38
|
* // 用户名
|
|
39
|
-
* replaceChar('林某某', {start: 1, end:
|
|
39
|
+
* replaceChar('林某某', {start: 1, end: Infinity, repeat: 2});
|
|
40
40
|
* // => 林**
|
|
41
|
-
* replaceChar('林某', {start: 1, end:
|
|
41
|
+
* replaceChar('林某', {start: 1, end: Infinity, repeat: 2});
|
|
42
42
|
* // => 林**
|
|
43
|
-
* replaceChar('林某某某', {start: 1, end:
|
|
43
|
+
* replaceChar('林某某某', {start: 1, end: Infinity, repeat: 2});
|
|
44
44
|
* // => 林**
|
|
45
45
|
*
|
|
46
46
|
*/
|
|
@@ -63,26 +63,24 @@ function replaceChar() {
|
|
|
63
63
|
return str;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
start = start >= 0 ? start
|
|
67
|
-
end = end >= 0 ? end
|
|
66
|
+
start = start >= 0 ? start : strLen + start;
|
|
67
|
+
end = end >= 0 ? end : strLen + end; // 开始位置大于结束位置
|
|
68
68
|
|
|
69
69
|
if (start >= end) {
|
|
70
70
|
return str;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
var middleStr =
|
|
73
|
+
var middleStr = str.substring(start, end);
|
|
74
74
|
|
|
75
75
|
if (exclude) {
|
|
76
|
-
repeat = Math.round(end - start);
|
|
77
|
-
var maskStr = str.substr(start, repeat);
|
|
78
76
|
var reg = new RegExp("[^".concat(exclude, "]"), 'g');
|
|
79
|
-
middleStr =
|
|
77
|
+
middleStr = middleStr.replace(reg, _char);
|
|
80
78
|
} else {
|
|
81
|
-
repeat = typeof repeat === 'number' && repeat >= 0 ? repeat :
|
|
79
|
+
repeat = typeof repeat === 'number' && repeat >= 0 ? repeat : middleStr.length;
|
|
82
80
|
middleStr = _char.repeat(repeat);
|
|
83
81
|
}
|
|
84
82
|
|
|
85
|
-
return str.
|
|
83
|
+
return str.substring(0, start) + middleStr + str.substring(end);
|
|
86
84
|
}
|
|
87
85
|
|
|
88
86
|
export default replaceChar;
|
package/esm/times.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
1
2
|
import { digitLength, float2Fixed, checkBoundary } from './utils/math.util';
|
|
3
|
+
import { isNumber, isNaN, isString } from './utils/type';
|
|
2
4
|
/**
|
|
3
5
|
* 精确乘法,支持多个数相乘
|
|
4
6
|
*
|
|
5
7
|
* @static
|
|
6
8
|
* @alias module:Math.times
|
|
7
9
|
* @since 3.1.0
|
|
8
|
-
* @param {number|string}
|
|
9
|
-
* @param {number|string} num2 相乘的第二个数
|
|
10
|
-
* @param {...number|string} others 相乘的其余数
|
|
10
|
+
* @param {...number|string} nums 相乘的数
|
|
11
11
|
* @returns {number} 乘积
|
|
12
12
|
* @example
|
|
13
13
|
*
|
|
@@ -21,14 +21,23 @@ import { digitLength, float2Fixed, checkBoundary } from './utils/math.util';
|
|
|
21
21
|
* // => 36
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
function times(
|
|
25
|
-
for (var _len = arguments.length,
|
|
26
|
-
|
|
24
|
+
function times() {
|
|
25
|
+
for (var _len = arguments.length, nums = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
26
|
+
nums[_key] = arguments[_key];
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
var num1 = nums[0],
|
|
30
|
+
num2 = nums[1],
|
|
31
|
+
rest = nums.slice(2);
|
|
32
|
+
|
|
33
|
+
if (rest.length > 0) {
|
|
34
|
+
return times.apply(void 0, [times(num1, num2)].concat(_toConsumableArray(rest)));
|
|
35
|
+
} // 兼容处理,如果第2个参数为非数字或字符串时,返回第一个参数
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
if ((!isNumber(num2) || isNaN(num2)) && !isString(num2)) {
|
|
30
39
|
// @ts-ignore
|
|
31
|
-
return
|
|
40
|
+
return num1;
|
|
32
41
|
}
|
|
33
42
|
|
|
34
43
|
var num1Changed = float2Fixed(num1);
|
|
@@ -1,22 +1,13 @@
|
|
|
1
1
|
import isString from './type/isString';
|
|
2
|
-
import { config } from './config';
|
|
3
2
|
/**
|
|
4
3
|
* 转换为字符串
|
|
5
4
|
*
|
|
6
5
|
* @param {*} value 值
|
|
7
|
-
* @returns 字符串
|
|
6
|
+
* @returns {string} 字符串
|
|
8
7
|
*/
|
|
9
8
|
|
|
10
9
|
function convertToString(value) {
|
|
11
|
-
|
|
12
|
-
if (!config.disableWarning) {
|
|
13
|
-
console.warn("[validatePassword] value must be a string.");
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return String(value);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return value;
|
|
10
|
+
return isString(value) ? value : String(value);
|
|
20
11
|
}
|
|
21
12
|
|
|
22
13
|
export default convertToString;
|
package/esm/utils/math.util.js
CHANGED
|
@@ -79,14 +79,14 @@ export function checkBoundary(num) {
|
|
|
79
79
|
* @returns {string}
|
|
80
80
|
*/
|
|
81
81
|
|
|
82
|
-
function trimLeftZero(num) {
|
|
83
|
-
var reg = /^([+-])?(0+)([
|
|
82
|
+
export function trimLeftZero(num) {
|
|
83
|
+
var reg = /^([+-])?(0+)([0-9\.]+)$/;
|
|
84
84
|
var result = reg.exec(num);
|
|
85
85
|
var sign;
|
|
86
86
|
|
|
87
87
|
if (result) {
|
|
88
88
|
sign = result[1] || '';
|
|
89
|
-
return sign + result[3];
|
|
89
|
+
return sign + (result[3][0] === '.' ? '0' + result[3] : result[3]);
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
return num;
|
|
@@ -102,7 +102,6 @@ function trimLeftZero(num) {
|
|
|
102
102
|
* @returns {string} 转换后的数字字符串
|
|
103
103
|
*/
|
|
104
104
|
|
|
105
|
-
|
|
106
105
|
export function scientificToNumber(num) {
|
|
107
106
|
if (isScientificNumber(num.toString())) {
|
|
108
107
|
var zero = '0';
|
|
@@ -125,7 +124,7 @@ export function scientificToNumber(num) {
|
|
|
125
124
|
var dec = coeff_array[1]; //如果是整数,将整数除第一位之外的非零数字计入位数,相应的减少0的个数
|
|
126
125
|
|
|
127
126
|
if (l - dec.length < 0) {
|
|
128
|
-
num = trimLeftZero(coeff_array[0] + dec.
|
|
127
|
+
num = trimLeftZero(coeff_array[0] + dec.substring(0, l)) + '.' + dec.substring(l);
|
|
129
128
|
} else {
|
|
130
129
|
//拼接字符串,如果是整数,不需要拼接小数点
|
|
131
130
|
num = coeff_array.join('') + new Array(l - dec.length + 1).join(zero);
|
package/lib/divide.js
CHANGED
|
@@ -9,17 +9,29 @@ var _math = require("./utils/math.util");
|
|
|
9
9
|
|
|
10
10
|
var _times = _interopRequireDefault(require("./times"));
|
|
11
11
|
|
|
12
|
+
var _type = require("./utils/type");
|
|
13
|
+
|
|
12
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
15
|
|
|
16
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
17
|
+
|
|
18
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
19
|
+
|
|
20
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
21
|
+
|
|
22
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
23
|
+
|
|
24
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
25
|
+
|
|
26
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
27
|
+
|
|
14
28
|
/**
|
|
15
29
|
* 精确除法,支持多个数相除
|
|
16
30
|
*
|
|
17
31
|
* @static
|
|
18
32
|
* @alias module:Math.divide
|
|
19
33
|
* @since 3.1.0
|
|
20
|
-
* @param {number|string}
|
|
21
|
-
* @param {number|string} num2 被除数
|
|
22
|
-
* @param {...number|string} others 其余被除数
|
|
34
|
+
* @param {...number|string} nums 除数和被除数
|
|
23
35
|
* @returns {number} 商数
|
|
24
36
|
* @example
|
|
25
37
|
*
|
|
@@ -32,14 +44,23 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
|
|
|
32
44
|
* divide(1000, 10, 10, 10);
|
|
33
45
|
* // => 1
|
|
34
46
|
*/
|
|
35
|
-
function divide(
|
|
36
|
-
for (var _len = arguments.length,
|
|
37
|
-
|
|
47
|
+
function divide() {
|
|
48
|
+
for (var _len = arguments.length, nums = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
49
|
+
nums[_key] = arguments[_key];
|
|
38
50
|
}
|
|
39
51
|
|
|
40
|
-
|
|
52
|
+
var num1 = nums[0],
|
|
53
|
+
num2 = nums[1],
|
|
54
|
+
rest = nums.slice(2);
|
|
55
|
+
|
|
56
|
+
if (rest.length > 0) {
|
|
57
|
+
return divide.apply(void 0, [divide(num1, num2)].concat(_toConsumableArray(rest)));
|
|
58
|
+
} // 兼容处理,如果第2个参数为非数字或字符串时,返回第一个参数
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
if ((!(0, _type.isNumber)(num2) || (0, _type.isNaN)(num2)) && !(0, _type.isString)(num2)) {
|
|
41
62
|
// @ts-ignore
|
|
42
|
-
return
|
|
63
|
+
return num1;
|
|
43
64
|
}
|
|
44
65
|
|
|
45
66
|
var num1Changed = (0, _math.float2Fixed)(num1);
|
package/lib/formatBankCard.js
CHANGED
|
@@ -49,7 +49,7 @@ function formatBankCard() {
|
|
|
49
49
|
var realValue = bankCardNo.replace(regChar, '');
|
|
50
50
|
var needRemoveLastChar = realValue.length % length === 0;
|
|
51
51
|
var str = realValue.replace(reg, "$1".concat(_char));
|
|
52
|
-
return needRemoveLastChar ? str.
|
|
52
|
+
return needRemoveLastChar ? str.substring(0, str.length - 1) : str;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
var _default = formatBankCard;
|
package/lib/formatMoney.js
CHANGED
|
@@ -31,7 +31,7 @@ var reg = /^[+-]?\d*\.?\d*$/;
|
|
|
31
31
|
*
|
|
32
32
|
* @private
|
|
33
33
|
* @param {string} num
|
|
34
|
-
* @returns
|
|
34
|
+
* @returns 是否为数字
|
|
35
35
|
*/
|
|
36
36
|
|
|
37
37
|
function checkNumber(num) {
|
|
@@ -63,10 +63,11 @@ function checkNumber(num) {
|
|
|
63
63
|
|
|
64
64
|
function formatInt(intStr, thousand) {
|
|
65
65
|
var txt = '';
|
|
66
|
-
intStr =
|
|
66
|
+
intStr = (0, _math.trimLeftZero)(intStr);
|
|
67
|
+
intStr = intStr[0] === '+' ? intStr.substring(1) : intStr; // 去掉+符号
|
|
67
68
|
|
|
68
69
|
var negativeSymbol = Number(intStr) < 0 ? '-' : '';
|
|
69
|
-
var reArr = negativeSymbol ? intStr.
|
|
70
|
+
var reArr = negativeSymbol ? intStr.substring(1).split('').reverse() : intStr.split('').reverse();
|
|
70
71
|
|
|
71
72
|
for (var i = 0; i < reArr.length; i++) {
|
|
72
73
|
txt += reArr[i] + ((i + 1) % 3 === 0 && i + 1 !== reArr.length ? thousand : '');
|
|
@@ -95,9 +96,9 @@ function formatDec(decStr, precision, decimal) {
|
|
|
95
96
|
|
|
96
97
|
if (decStr && Number(decStr) > 0) {
|
|
97
98
|
var tmpNum = parseFloat('0.' + decStr);
|
|
98
|
-
ret = tmpNum.toFixed(precision).
|
|
99
|
+
ret = tmpNum.toFixed(precision).substring(2);
|
|
99
100
|
} else {
|
|
100
|
-
ret = zero.toFixed(precision).
|
|
101
|
+
ret = zero.toFixed(precision).substring(2);
|
|
101
102
|
}
|
|
102
103
|
|
|
103
104
|
return decimal + ret;
|
package/lib/isBusinessLicense.js
CHANGED
|
@@ -85,9 +85,9 @@ function isBusinessLicense(value) {
|
|
|
85
85
|
} // 前14位
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
var preCode = valueStr.
|
|
88
|
+
var preCode = valueStr.substring(0, 14); // 校验码
|
|
89
89
|
|
|
90
|
-
var lastCode = valueStr.
|
|
90
|
+
var lastCode = valueStr.substring(valueStr.length - 1); // 计算校验码
|
|
91
91
|
|
|
92
92
|
var checkCode = sumCheckCode(preCode);
|
|
93
93
|
return lastCode === String(checkCode);
|
|
@@ -104,9 +104,9 @@ function isSocialCreditCode(value) {
|
|
|
104
104
|
} // 前17位
|
|
105
105
|
|
|
106
106
|
|
|
107
|
-
var preCode = valueStr.
|
|
107
|
+
var preCode = valueStr.substring(0, 17); // 校验码
|
|
108
108
|
|
|
109
|
-
var lastCode = valueStr.
|
|
109
|
+
var lastCode = valueStr.substring(valueStr.length - 1); // 计算校验码
|
|
110
110
|
|
|
111
111
|
var checkCode = sumCheckCode(preCode);
|
|
112
112
|
return lastCode === checkCode;
|
package/lib/minus.js
CHANGED
|
@@ -9,17 +9,29 @@ var _math = require("./utils/math.util");
|
|
|
9
9
|
|
|
10
10
|
var _times = _interopRequireDefault(require("./times"));
|
|
11
11
|
|
|
12
|
+
var _type = require("./utils/type");
|
|
13
|
+
|
|
12
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
15
|
|
|
16
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
17
|
+
|
|
18
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
19
|
+
|
|
20
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
21
|
+
|
|
22
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
23
|
+
|
|
24
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
25
|
+
|
|
26
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
27
|
+
|
|
14
28
|
/**
|
|
15
29
|
* 精确减法,支持多个数相减
|
|
16
30
|
*
|
|
17
31
|
* @static
|
|
18
32
|
* @alias module:Math.minus
|
|
19
33
|
* @since 3.1.0
|
|
20
|
-
* @param {number|string}
|
|
21
|
-
* @param {number|string} num2 相减的第二个数
|
|
22
|
-
* @param {...number|string} others 相减的第其余数
|
|
34
|
+
* @param {...number|string} nums 相减的数
|
|
23
35
|
* @returns {number} 差
|
|
24
36
|
* @example
|
|
25
37
|
*
|
|
@@ -32,14 +44,23 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
|
|
|
32
44
|
* minus(1, 0.9, 0.02, 0.08);
|
|
33
45
|
* // => 0
|
|
34
46
|
*/
|
|
35
|
-
function minus(
|
|
36
|
-
for (var _len = arguments.length,
|
|
37
|
-
|
|
47
|
+
function minus() {
|
|
48
|
+
for (var _len = arguments.length, nums = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
49
|
+
nums[_key] = arguments[_key];
|
|
38
50
|
}
|
|
39
51
|
|
|
40
|
-
|
|
52
|
+
var num1 = nums[0],
|
|
53
|
+
num2 = nums[1],
|
|
54
|
+
rest = nums.slice(2);
|
|
55
|
+
|
|
56
|
+
if (rest.length > 0) {
|
|
57
|
+
return minus.apply(void 0, [minus(num1, num2)].concat(_toConsumableArray(rest)));
|
|
58
|
+
} // 兼容处理,如果第2个参数为非数字或字符串时,返回第一个参数
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
if ((!(0, _type.isNumber)(num2) || (0, _type.isNaN)(num2)) && !(0, _type.isString)(num2)) {
|
|
41
62
|
// @ts-ignore
|
|
42
|
-
return
|
|
63
|
+
return num1;
|
|
43
64
|
}
|
|
44
65
|
|
|
45
66
|
var baseNum = Math.pow(10, Math.max((0, _math.digitLength)(num1), (0, _math.digitLength)(num2)));
|
package/lib/parseIdCard.js
CHANGED
|
@@ -57,7 +57,7 @@ var Provinces = [// 华北地区:北京市|110000,天津市|120000,河北
|
|
|
57
57
|
* @since 4.0.0
|
|
58
58
|
* @see 参考 {@link https://baike.baidu.com/item/居民身份证号码|居民身份证号码}
|
|
59
59
|
* @param {string} id 身份证号码,支持15位
|
|
60
|
-
* @returns
|
|
60
|
+
* @returns null 或 省份、生日、性别,省/市/区/年/月/日/性别编码
|
|
61
61
|
* @example
|
|
62
62
|
* parseIdCard('123456789123456');
|
|
63
63
|
* // => null
|
|
@@ -135,7 +135,7 @@ function parseIdCard(id) {
|
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
var birthday = "".concat(origin.year, "-").concat(origin.month, "-").concat(origin.day);
|
|
138
|
-
var gender = Number(origin.gender) % 2 === 0 ? '女' : '男'; // const region = Regions.find(item => item[0] === origin.province?.
|
|
138
|
+
var gender = Number(origin.gender) % 2 === 0 ? '女' : '男'; // const region = Regions.find(item => item[0] === origin.province?.substring(0, 1));
|
|
139
139
|
|
|
140
140
|
return {
|
|
141
141
|
// region,
|
package/lib/plus.js
CHANGED
|
@@ -9,17 +9,29 @@ var _math = require("./utils/math.util");
|
|
|
9
9
|
|
|
10
10
|
var _times = _interopRequireDefault(require("./times"));
|
|
11
11
|
|
|
12
|
+
var _type = require("./utils/type");
|
|
13
|
+
|
|
12
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
15
|
|
|
16
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
17
|
+
|
|
18
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
19
|
+
|
|
20
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
21
|
+
|
|
22
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
23
|
+
|
|
24
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
25
|
+
|
|
26
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
27
|
+
|
|
14
28
|
/**
|
|
15
29
|
* 精确加法,支持多个数相加
|
|
16
30
|
*
|
|
17
31
|
* @static
|
|
18
32
|
* @alias module:Math.plus
|
|
19
33
|
* @since 3.1.0
|
|
20
|
-
* @param {number|string}
|
|
21
|
-
* @param {number|string} num2 相加的第二个数
|
|
22
|
-
* @param {...number|string} others 相加的其余数
|
|
34
|
+
* @param {...number|string} nums 相加的数
|
|
23
35
|
* @returns {number} 总和
|
|
24
36
|
* @example
|
|
25
37
|
*
|
|
@@ -32,14 +44,23 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
|
|
|
32
44
|
* plus(0.1, 0.2, 0.3, 0.4);
|
|
33
45
|
* // => 1
|
|
34
46
|
*/
|
|
35
|
-
function plus(
|
|
36
|
-
for (var _len = arguments.length,
|
|
37
|
-
|
|
47
|
+
function plus() {
|
|
48
|
+
for (var _len = arguments.length, nums = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
49
|
+
nums[_key] = arguments[_key];
|
|
38
50
|
}
|
|
39
51
|
|
|
40
|
-
|
|
52
|
+
var num1 = nums[0],
|
|
53
|
+
num2 = nums[1],
|
|
54
|
+
rest = nums.slice(2);
|
|
55
|
+
|
|
56
|
+
if (rest.length > 0) {
|
|
57
|
+
return plus.apply(void 0, [plus(num1, num2)].concat(_toConsumableArray(rest)));
|
|
58
|
+
} // 兼容处理,如果第2个参数为非数字或字符串时,返回第一个参数
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
if ((!(0, _type.isNumber)(num2) || (0, _type.isNaN)(num2)) && !(0, _type.isString)(num2)) {
|
|
41
62
|
// @ts-ignore
|
|
42
|
-
return
|
|
63
|
+
return num1;
|
|
43
64
|
}
|
|
44
65
|
|
|
45
66
|
var baseNum = Math.pow(10, Math.max((0, _math.digitLength)(num1), (0, _math.digitLength)(num2)));
|
package/lib/replaceChar.js
CHANGED
|
@@ -43,11 +43,11 @@ exports["default"] = void 0;
|
|
|
43
43
|
* // => 6228 **** **** **** 018
|
|
44
44
|
*
|
|
45
45
|
* // 用户名
|
|
46
|
-
* replaceChar('林某某', {start: 1, end:
|
|
46
|
+
* replaceChar('林某某', {start: 1, end: Infinity, repeat: 2});
|
|
47
47
|
* // => 林**
|
|
48
|
-
* replaceChar('林某', {start: 1, end:
|
|
48
|
+
* replaceChar('林某', {start: 1, end: Infinity, repeat: 2});
|
|
49
49
|
* // => 林**
|
|
50
|
-
* replaceChar('林某某某', {start: 1, end:
|
|
50
|
+
* replaceChar('林某某某', {start: 1, end: Infinity, repeat: 2});
|
|
51
51
|
* // => 林**
|
|
52
52
|
*
|
|
53
53
|
*/
|
|
@@ -70,26 +70,24 @@ function replaceChar() {
|
|
|
70
70
|
return str;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
start = start >= 0 ? start
|
|
74
|
-
end = end >= 0 ? end
|
|
73
|
+
start = start >= 0 ? start : strLen + start;
|
|
74
|
+
end = end >= 0 ? end : strLen + end; // 开始位置大于结束位置
|
|
75
75
|
|
|
76
76
|
if (start >= end) {
|
|
77
77
|
return str;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
var middleStr =
|
|
80
|
+
var middleStr = str.substring(start, end);
|
|
81
81
|
|
|
82
82
|
if (exclude) {
|
|
83
|
-
repeat = Math.round(end - start);
|
|
84
|
-
var maskStr = str.substr(start, repeat);
|
|
85
83
|
var reg = new RegExp("[^".concat(exclude, "]"), 'g');
|
|
86
|
-
middleStr =
|
|
84
|
+
middleStr = middleStr.replace(reg, _char);
|
|
87
85
|
} else {
|
|
88
|
-
repeat = typeof repeat === 'number' && repeat >= 0 ? repeat :
|
|
86
|
+
repeat = typeof repeat === 'number' && repeat >= 0 ? repeat : middleStr.length;
|
|
89
87
|
middleStr = _char.repeat(repeat);
|
|
90
88
|
}
|
|
91
89
|
|
|
92
|
-
return str.
|
|
90
|
+
return str.substring(0, start) + middleStr + str.substring(end);
|
|
93
91
|
}
|
|
94
92
|
|
|
95
93
|
var _default = replaceChar;
|