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/esm/padZero.js
CHANGED
|
@@ -1,38 +1,16 @@
|
|
|
1
|
-
import normalizeString from './normalizeString';
|
|
1
|
+
import normalizeString from './normalizeString.js';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
* padZero('5'); // 05
|
|
15
|
-
*
|
|
16
|
-
* padZero(12); // 12
|
|
17
|
-
* padZero('12'); // 12
|
|
18
|
-
*
|
|
19
|
-
* padZero(688); // 688
|
|
20
|
-
* padZero('688'); // 688
|
|
21
|
-
*
|
|
22
|
-
* padZero(688, 5); // 00688
|
|
23
|
-
* padZero('688', 5); // 00688
|
|
24
|
-
*
|
|
25
|
-
*/
|
|
26
|
-
function padZero(value) {
|
|
27
|
-
var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
|
|
28
|
-
var str = normalizeString(value);
|
|
29
|
-
var len = str.length;
|
|
30
|
-
if (typeof size !== 'number' || size < 0) {
|
|
31
|
-
size = 0;
|
|
32
|
-
}
|
|
33
|
-
if (len < size) {
|
|
34
|
-
return '0'.repeat(size - len) + str;
|
|
35
|
-
}
|
|
36
|
-
return str;
|
|
3
|
+
function padZero(value, size) {
|
|
4
|
+
if (size === void 0) { size = 2; }
|
|
5
|
+
var str = normalizeString(value);
|
|
6
|
+
var len = str.length;
|
|
7
|
+
if (typeof size !== 'number' || size < 0) {
|
|
8
|
+
size = 0;
|
|
9
|
+
}
|
|
10
|
+
if (len < size) {
|
|
11
|
+
return '0'.repeat(size - len) + str;
|
|
12
|
+
}
|
|
13
|
+
return str;
|
|
37
14
|
}
|
|
38
|
-
|
|
15
|
+
|
|
16
|
+
export { padZero as default };
|
package/esm/parseIdCard.js
CHANGED
|
@@ -1,135 +1,67 @@
|
|
|
1
|
-
|
|
2
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
3
|
-
import _setPrototypeOf from "@babel/runtime/helpers/setPrototypeOf";
|
|
4
|
-
function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(re, groups) { return new BabelRegExp(re, void 0, groups); }; var _super = RegExp.prototype, _groups = new WeakMap(); function BabelRegExp(re, flags, groups) { var _this = new RegExp(re, flags); return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype); } function buildGroups(result, re) { var g = _groups.get(re); return Object.keys(g).reduce(function (groups, name) { var i = g[name]; if ("number" == typeof i) groups[name] = result[i];else { for (var k = 0; void 0 === result[i[k]] && k + 1 < i.length;) { k++; } groups[name] = result[i[k]]; } return groups; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) { var result = _super.exec.call(this, str); if (result) { result.groups = buildGroups(result, this); var indices = result.indices; indices && (indices.groups = buildGroups(indices, this)); } return result; }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) { if ("string" == typeof substitution) { var groups = _groups.get(this); return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) { var group = groups[name]; return "$" + (Array.isArray(group) ? group.join("$") : group); })); } if ("function" == typeof substitution) { var _this = this; return _super[Symbol.replace].call(this, str, function () { var args = arguments; return "object" != _typeof(args[args.length - 1]) && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args); }); } return _super[Symbol.replace].call(this, str, substitution); }, _wrapRegExp.apply(this, arguments); }
|
|
5
|
-
var regIdCard = /*#__PURE__*/_wrapRegExp(/^(\d{2})(\d{2})(\d{2})((?:\d{2})?\d{2})(\d{2})(\d{2})\d{2}(\d)(?:\d|X)?$/i, {
|
|
6
|
-
province: 1,
|
|
7
|
-
city: 2,
|
|
8
|
-
area: 3,
|
|
9
|
-
year: 4,
|
|
10
|
-
month: 5,
|
|
11
|
-
day: 6,
|
|
12
|
-
gender: 7
|
|
13
|
-
});
|
|
1
|
+
var regIdCard = /^(?<province>\d{2})(?<city>\d{2})(?<area>\d{2})(?<year>(?:\d{2})?\d{2})(?<month>\d{2})(?<day>\d{2})\d{2}(?<gender>\d)(?:\d|X)?$/i;
|
|
14
2
|
var Provinces = [
|
|
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
|
-
* @property {string} area - 地区编码
|
|
52
|
-
* @property {string} year - 出生年
|
|
53
|
-
* @property {string} month - 出生月
|
|
54
|
-
* @property {string} day - 出生日
|
|
55
|
-
* @property {string} gender - 性别 能整除2为女,否则为男
|
|
56
|
-
*/
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* @typedef {Object} IdCardInfo - 身份证信息
|
|
60
|
-
* @property {string} province - 省份
|
|
61
|
-
* @property {string} birthday - 生日
|
|
62
|
-
* @property {string} gender - 性别
|
|
63
|
-
* @property {IdCardOrigin} origin - 解析身份证原数据
|
|
64
|
-
*/
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* 解析身份证号码,支持15、18位身份证号码
|
|
68
|
-
*
|
|
69
|
-
* @static
|
|
70
|
-
* @alias module:Processor.parseIdCard
|
|
71
|
-
* @since 4.0.0
|
|
72
|
-
* @see {@link https://baike.baidu.com/item/居民身份证号码|居民身份证号码}
|
|
73
|
-
* @param {string} id 身份证号码,支持15位
|
|
74
|
-
* @returns {IdCardInfo | null} 省份、生日、性别,省/市/区/年/月/日/性别编码。如果解析失败将返回 null 。
|
|
75
|
-
* @example
|
|
76
|
-
*
|
|
77
|
-
* parseIdCard('123456789123456'); // null
|
|
78
|
-
*
|
|
79
|
-
* // 18位身份证号码
|
|
80
|
-
* parseIdCard('130701199310302288');
|
|
81
|
-
* // =>
|
|
82
|
-
* {
|
|
83
|
-
* birthday: "1993-10-30",
|
|
84
|
-
* gender: "女",
|
|
85
|
-
* origin: { province: "13", city: "07", area: "01", year: "1993", month: "10", day: "30", gender: "8" },
|
|
86
|
-
* province: "河北省"
|
|
87
|
-
* }
|
|
88
|
-
*
|
|
89
|
-
* // 15位身份证号码
|
|
90
|
-
* parseIdCard('130701931030228');
|
|
91
|
-
* // =>
|
|
92
|
-
* {
|
|
93
|
-
* birthday: "93-10-30",
|
|
94
|
-
* gender: "女",
|
|
95
|
-
* origin: { province: "13", city: "07", area: "01", year: "93", month: "10", day: "30", gender: "8" },
|
|
96
|
-
* province: "河北省"
|
|
97
|
-
* }
|
|
98
|
-
*
|
|
99
|
-
*/
|
|
3
|
+
['11', '北京市'],
|
|
4
|
+
['12', '天津市'],
|
|
5
|
+
['13', '河北省'],
|
|
6
|
+
['14', '山西省'],
|
|
7
|
+
['15', '内蒙古自治区'],
|
|
8
|
+
['21', '辽宁省'],
|
|
9
|
+
['22', '吉林省'],
|
|
10
|
+
['23', '黑龙江省'],
|
|
11
|
+
['31', '上海市'],
|
|
12
|
+
['32', '江苏省'],
|
|
13
|
+
['33', '浙江省'],
|
|
14
|
+
['34', '安徽省'],
|
|
15
|
+
['35', '福建省'],
|
|
16
|
+
['36', '江西省'],
|
|
17
|
+
['37', '山东省'],
|
|
18
|
+
['41', '河南省'],
|
|
19
|
+
['42', '湖北省'],
|
|
20
|
+
['43', '湖南省'],
|
|
21
|
+
['44', '广东省'],
|
|
22
|
+
['45', '广西壮族自治区'],
|
|
23
|
+
['46', '海南省'],
|
|
24
|
+
['50', '重庆市'],
|
|
25
|
+
['51', '四川省'],
|
|
26
|
+
['52', '贵州省'],
|
|
27
|
+
['53', '云南省'],
|
|
28
|
+
['54', '西藏自治区'],
|
|
29
|
+
['61', '陕西省'],
|
|
30
|
+
['62', '甘肃省'],
|
|
31
|
+
['63', '青海省'],
|
|
32
|
+
['64', '宁夏回族自治区'],
|
|
33
|
+
['65', '新疆维吾尔自治区'],
|
|
34
|
+
['71', '台湾省'],
|
|
35
|
+
['83', '台湾省'],
|
|
36
|
+
['81', '香港特别行政区'],
|
|
37
|
+
['82', '澳门特别行政区']
|
|
38
|
+
];
|
|
100
39
|
function parseIdCard(id) {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
return {
|
|
128
|
-
// region,
|
|
129
|
-
province: province[1],
|
|
130
|
-
birthday: birthday,
|
|
131
|
-
gender: gender,
|
|
132
|
-
origin: origin
|
|
133
|
-
};
|
|
40
|
+
var match = regIdCard.exec(id);
|
|
41
|
+
if (!match) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
var origin = match.groups || {
|
|
45
|
+
province: match[1],
|
|
46
|
+
city: match[2],
|
|
47
|
+
area: match[3],
|
|
48
|
+
year: match[4],
|
|
49
|
+
month: match[5],
|
|
50
|
+
day: match[6],
|
|
51
|
+
gender: match[7]
|
|
52
|
+
};
|
|
53
|
+
var province = Provinces.find(function (item) { return item[0] === origin.province; });
|
|
54
|
+
if (!province) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
var birthday = "".concat(origin.year, "-").concat(origin.month, "-").concat(origin.day);
|
|
58
|
+
var gender = Number(origin.gender) % 2 === 0 ? '女' : '男';
|
|
59
|
+
return {
|
|
60
|
+
province: province[1],
|
|
61
|
+
birthday: birthday,
|
|
62
|
+
gender: gender,
|
|
63
|
+
origin: origin
|
|
64
|
+
};
|
|
134
65
|
}
|
|
135
|
-
|
|
66
|
+
|
|
67
|
+
export { parseIdCard as default };
|
package/esm/plus.js
CHANGED
|
@@ -1,42 +1,24 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import times from './times';
|
|
1
|
+
import { __read, __spreadArray } from 'tslib';
|
|
2
|
+
import { transformEffectiveNumber, digitLength } from './utils/math.util.js';
|
|
3
|
+
import times from './times.js';
|
|
4
|
+
import _isNaN from './utils/type/isNaN.js';
|
|
4
5
|
|
|
5
|
-
/**
|
|
6
|
-
* 精确加法,支持多个数相加,加数默认为 0 。
|
|
7
|
-
*
|
|
8
|
-
* @static
|
|
9
|
-
* @alias module:Math.plus
|
|
10
|
-
* @since 3.1.0
|
|
11
|
-
* @param {...number|string} nums 相加的数
|
|
12
|
-
* @returns {number} 总和
|
|
13
|
-
* @example
|
|
14
|
-
*
|
|
15
|
-
* plus(0.1, 0.2); // 0.3
|
|
16
|
-
* plus(0.1, 0.2, 0.3); // 0.6
|
|
17
|
-
* plus(0.1, 0.2, 0.3, 0.4); // 1
|
|
18
|
-
*
|
|
19
|
-
*/
|
|
20
6
|
function plus() {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (isNaN(num1) || isNaN(num2)) {
|
|
37
|
-
return Number.NaN;
|
|
38
|
-
}
|
|
39
|
-
var baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
|
|
40
|
-
return (times(num1, baseNum) + times(num2, baseNum)) / baseNum;
|
|
7
|
+
var nums = [];
|
|
8
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
9
|
+
nums[_i] = arguments[_i];
|
|
10
|
+
}
|
|
11
|
+
var _a = __read(nums), num1 = _a[0], _b = _a[1], num2 = _b === void 0 ? 0 : _b, rest = _a.slice(2);
|
|
12
|
+
if (rest.length > 0) {
|
|
13
|
+
return plus.apply(void 0, __spreadArray([plus(num1, num2)], __read(rest), false));
|
|
14
|
+
}
|
|
15
|
+
num1 = transformEffectiveNumber(num1);
|
|
16
|
+
num2 = transformEffectiveNumber(num2);
|
|
17
|
+
if (_isNaN(num1) || _isNaN(num2)) {
|
|
18
|
+
return Number.NaN;
|
|
19
|
+
}
|
|
20
|
+
var baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
|
|
21
|
+
return (times(num1, baseNum) + times(num2, baseNum)) / baseNum;
|
|
41
22
|
}
|
|
42
|
-
|
|
23
|
+
|
|
24
|
+
export { plus as default };
|
package/esm/randomString.js
CHANGED
|
@@ -1,50 +1,18 @@
|
|
|
1
1
|
var numberChars = '0123456789';
|
|
2
2
|
var letterChars = 'abcdefghijklmnopqrstuvwxyz';
|
|
3
3
|
var defaultChars = numberChars + letterChars + letterChars.toUpperCase();
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*/
|
|
12
|
-
function internalRandomString(len, optionalChars) {
|
|
13
|
-
var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
14
|
-
while (len-- > 0) {
|
|
15
|
-
var r = optionalChars[Math.floor(Math.random() * optionalChars.length)];
|
|
16
|
-
return internalRandomString(len, optionalChars, prefix + r);
|
|
17
|
-
}
|
|
18
|
-
return prefix;
|
|
4
|
+
function internalRandomString(len, optionalChars, prefix) {
|
|
5
|
+
if (prefix === void 0) { prefix = ''; }
|
|
6
|
+
while (len-- > 0) {
|
|
7
|
+
var r = optionalChars[Math.floor(Math.random() * optionalChars.length)];
|
|
8
|
+
return internalRandomString(len, optionalChars, prefix + r);
|
|
9
|
+
}
|
|
10
|
+
return prefix;
|
|
19
11
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
* @static
|
|
25
|
-
* @alias module:Other.randomString
|
|
26
|
-
* @since 4.8.0
|
|
27
|
-
* @param {number} [len=0] 长度
|
|
28
|
-
* @param {string} [optionalChars='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'] 允许的字符,默认为数字和大小写字母
|
|
29
|
-
* @returns {string} 随机字符串
|
|
30
|
-
* @example
|
|
31
|
-
*
|
|
32
|
-
* randomString(5); // slk23
|
|
33
|
-
* randomString(8); // 71mHqo2A
|
|
34
|
-
*
|
|
35
|
-
* // 自定义允许的字符
|
|
36
|
-
* randomString(5, 'abc'); // ccbcb
|
|
37
|
-
* randomString(8, 'abcefg'); // bcgcfabg
|
|
38
|
-
*
|
|
39
|
-
*/
|
|
40
|
-
function randomString() {
|
|
41
|
-
var len = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
42
|
-
var optionalChars = arguments.length > 1 ? arguments[1] : undefined;
|
|
43
|
-
var realLen = typeof len === 'number' ? len : Number(len);
|
|
44
|
-
if (isNaN(realLen)) {
|
|
45
|
-
realLen = 0;
|
|
46
|
-
}
|
|
47
|
-
var realChars = typeof optionalChars === 'string' && optionalChars ? optionalChars : defaultChars;
|
|
48
|
-
return internalRandomString(len, realChars);
|
|
12
|
+
function randomString(len, optionalChars) {
|
|
13
|
+
if (len === void 0) { len = 0; }
|
|
14
|
+
var realChars = typeof optionalChars === 'string' && optionalChars ? optionalChars : defaultChars;
|
|
15
|
+
return internalRandomString(len, realChars);
|
|
49
16
|
}
|
|
50
|
-
|
|
17
|
+
|
|
18
|
+
export { randomString as default };
|
package/esm/replaceChar.js
CHANGED
|
@@ -1,79 +1,29 @@
|
|
|
1
|
-
import normalizeString from './normalizeString';
|
|
1
|
+
import normalizeString from './normalizeString.js';
|
|
2
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
|
-
* const emailAtIndex = email.indexOf('@');
|
|
28
|
-
* replaceChar(email, { start: emailAtIndex - 2, end: emailAtIndex }); // 123**@qq.com
|
|
29
|
-
* // 邮箱 前2和@后面内容,固定替换字符4位
|
|
30
|
-
* replaceChar(email, {start: 2, end: email.indexOf('@'), repeat: 4}); // 12****@qq.com
|
|
31
|
-
*
|
|
32
|
-
* // 银行卡号 只展示后4位,固定替换字符4位
|
|
33
|
-
* replaceChar('6228480402564890018', {start: 0, end: -4, repeat: 4}); // ****0018
|
|
34
|
-
* // 银行卡号 前6后4
|
|
35
|
-
* replaceChar('6228480402564890018', { start: 6, end: -4 }); // 622848*********0018
|
|
36
|
-
* // 银行卡号 前4后3 忽略格式的空格
|
|
37
|
-
* replaceChar('6228 4804 0256 4890 018', {start: 4, end: -4, exclude: ' '}); // 6228 **** **** **** 018
|
|
38
|
-
*
|
|
39
|
-
* // 用户名
|
|
40
|
-
* replaceChar('林某某', {start: 1, end: Infinity, repeat: 2}); // 林**
|
|
41
|
-
* replaceChar('林某', {start: 1, end: Infinity, repeat: 2}); // 林**
|
|
42
|
-
* replaceChar('林某某某', {start: 1, end: Infinity, repeat: 2}); // 林**
|
|
43
|
-
*
|
|
44
|
-
*/
|
|
45
|
-
function replaceChar(str) {
|
|
46
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
47
|
-
var _options$char = options["char"],
|
|
48
|
-
_char = _options$char === void 0 ? '*' : _options$char,
|
|
49
|
-
exclude = options.exclude;
|
|
50
|
-
var _options$start = options.start,
|
|
51
|
-
start = _options$start === void 0 ? 3 : _options$start,
|
|
52
|
-
_options$end = options.end,
|
|
53
|
-
end = _options$end === void 0 ? -4 : _options$end,
|
|
54
|
-
repeat = options.repeat;
|
|
55
|
-
var realStr = normalizeString(str);
|
|
56
|
-
var strLen = realStr.length;
|
|
57
|
-
|
|
58
|
-
// 开始位置超过str长度
|
|
59
|
-
if (Math.abs(start) >= strLen) {
|
|
60
|
-
return realStr;
|
|
61
|
-
}
|
|
62
|
-
start = start >= 0 ? start : strLen + start;
|
|
63
|
-
end = end >= 0 ? end : strLen + end;
|
|
64
|
-
|
|
65
|
-
// 开始位置大于结束位置
|
|
66
|
-
if (start >= end) {
|
|
67
|
-
return realStr;
|
|
68
|
-
}
|
|
69
|
-
var middleStr = realStr.substring(start, end);
|
|
70
|
-
if (exclude) {
|
|
71
|
-
var reg = new RegExp("[^".concat(exclude, "]"), 'g');
|
|
72
|
-
middleStr = middleStr.replace(reg, _char);
|
|
73
|
-
} else {
|
|
74
|
-
repeat = typeof repeat === 'number' && repeat >= 0 ? repeat : middleStr.length;
|
|
75
|
-
middleStr = _char.repeat(repeat);
|
|
76
|
-
}
|
|
77
|
-
return realStr.substring(0, start) + middleStr + realStr.substring(end);
|
|
3
|
+
function replaceChar(str, options) {
|
|
4
|
+
if (options === void 0) { options = {}; }
|
|
5
|
+
var _a = options.char, char = _a === void 0 ? '*' : _a, exclude = options.exclude;
|
|
6
|
+
var _b = options.start, start = _b === void 0 ? 3 : _b, _c = options.end, end = _c === void 0 ? -4 : _c, repeat = options.repeat;
|
|
7
|
+
var realStr = normalizeString(str);
|
|
8
|
+
var strLen = realStr.length;
|
|
9
|
+
if (Math.abs(start) >= strLen) {
|
|
10
|
+
return realStr;
|
|
11
|
+
}
|
|
12
|
+
start = start >= 0 ? start : strLen + start;
|
|
13
|
+
end = end >= 0 ? end : strLen + end;
|
|
14
|
+
if (start >= end) {
|
|
15
|
+
return realStr;
|
|
16
|
+
}
|
|
17
|
+
var middleStr = realStr.substring(start, end);
|
|
18
|
+
if (exclude) {
|
|
19
|
+
var reg = new RegExp("[^".concat(exclude, "]"), 'g');
|
|
20
|
+
middleStr = middleStr.replace(reg, char);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
repeat = typeof repeat === 'number' && repeat >= 0 ? repeat : middleStr.length;
|
|
24
|
+
middleStr = char.repeat(repeat);
|
|
25
|
+
}
|
|
26
|
+
return realStr.substring(0, start) + middleStr + realStr.substring(end);
|
|
78
27
|
}
|
|
79
|
-
|
|
28
|
+
|
|
29
|
+
export { replaceChar as default };
|
package/esm/round.js
CHANGED
|
@@ -1,33 +1,16 @@
|
|
|
1
|
-
import divide from './divide';
|
|
2
|
-
import times from './times';
|
|
3
|
-
import { transformEffectiveNumber } from './utils/math.util';
|
|
1
|
+
import divide from './divide.js';
|
|
2
|
+
import times from './times.js';
|
|
3
|
+
import { transformEffectiveNumber } from './utils/math.util.js';
|
|
4
|
+
import _isNaN from './utils/type/isNaN.js';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
* @returns {number} 四舍五入的数字
|
|
14
|
-
* @example
|
|
15
|
-
*
|
|
16
|
-
* round(4.006); // 4
|
|
17
|
-
* round(4.006, 2); // 4.01
|
|
18
|
-
* round(4060, -2); // 4100
|
|
19
|
-
*
|
|
20
|
-
*/
|
|
21
|
-
function round(num) {
|
|
22
|
-
var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
23
|
-
num = transformEffectiveNumber(num);
|
|
24
|
-
|
|
25
|
-
// 兼容处理,如果参数包含无效数值时,返回 NaN
|
|
26
|
-
// @ts-ignore
|
|
27
|
-
if (isNaN(num)) {
|
|
28
|
-
return Number.NaN;
|
|
29
|
-
}
|
|
30
|
-
var base = Math.pow(10, precision);
|
|
31
|
-
return divide(Math.round(times(num, base)), base);
|
|
6
|
+
function round(num, precision) {
|
|
7
|
+
if (precision === void 0) { precision = 0; }
|
|
8
|
+
num = transformEffectiveNumber(num);
|
|
9
|
+
if (_isNaN(num)) {
|
|
10
|
+
return Number.NaN;
|
|
11
|
+
}
|
|
12
|
+
var base = Math.pow(10, precision);
|
|
13
|
+
return divide(Math.round(times(num, base)), base);
|
|
32
14
|
}
|
|
33
|
-
|
|
15
|
+
|
|
16
|
+
export { round as default };
|
package/esm/safeDate.js
CHANGED
|
@@ -1,58 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
/**
|
|
3
|
-
* @overload
|
|
4
|
-
* @return {Date}
|
|
5
|
-
*/
|
|
1
|
+
import { __spreadArray, __read } from 'tslib';
|
|
6
2
|
|
|
7
|
-
/**
|
|
8
|
-
* @overload
|
|
9
|
-
* @param {number | string | Date} value Unix时间戳、时间戳字符串 dateString 、Date 日期对象
|
|
10
|
-
* @return {Date}
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* @overload
|
|
15
|
-
* @param {number} year 表示年份的整数值。0 到 99 会被映射至 1900 年至 1999 年,其他值代表实际年份。
|
|
16
|
-
* @param {number} monthIndex 表示月份的整数值,从 0(1 月)到 11(12 月)。
|
|
17
|
-
* @param {number} [date] 表示一个月中的第几天的整数值,从 1 开始。默认值为 1。
|
|
18
|
-
* @param {number} [hours] 表示一天中的小时数的整数值 (24 小时制)。默认值为 0(午夜)。
|
|
19
|
-
* @param {number} [minutes] 表示一个完整时间(如 01:10:00)中的分钟部分的整数值。默认值为 0。
|
|
20
|
-
* @param {number} [seconds] 表示一个完整时间(如 01:10:00)中的秒部分的整数值。默认值为 0。
|
|
21
|
-
* @param {number} [ms] 表示一个完整时间的毫秒部分的整数值。默认值为 0。
|
|
22
|
-
* @return {Date}
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* 创建一个 Date 实例日期对象,同 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date#%E5%8F%82%E6%95%B0">new Date()</a> <br/><br/>
|
|
27
|
-
*
|
|
28
|
-
* 规避了苹果设备浏览器不支持部分格式(例如,YYYY-MM-DD HH-mm 或 YYYY.MM.DD)。<br/>
|
|
29
|
-
* 如果参数为 undefined 正常返回 Date 。
|
|
30
|
-
*
|
|
31
|
-
* @static
|
|
32
|
-
* @alias module:Processor.safeDate
|
|
33
|
-
* @since 4.4.0
|
|
34
|
-
* @see {@link https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date|Date}
|
|
35
|
-
* @param {string|number|Date} [value] 日期时间字符串、毫秒数、日期对象
|
|
36
|
-
* @param {...number} args 月/日/时/分/秒/毫秒
|
|
37
|
-
* @returns {Date} Date 实例日期对象
|
|
38
|
-
* @example
|
|
39
|
-
*
|
|
40
|
-
* safeDate('2022-1-1'); // Sat Jan 01 2022 00:00:00 GMT+0800 (中国标准时间)
|
|
41
|
-
* safeDate('2022/1/1'); // Sat Jan 01 2022 00:00:00 GMT+0800 (中国标准时间)
|
|
42
|
-
* safeDate('2022.1.1'); // Sat Jan 01 2022 00:00:00 GMT+0800 (中国标准时间)
|
|
43
|
-
* safeDate('2022.1.1 11:11'); // Sat Jan 01 2022 11:11:00 GMT+0800 (中国标准时间)
|
|
44
|
-
* safeDate(99, 1); // Mon Feb 01 1999 00:00:00 GMT+0800 (中国标准时间)
|
|
45
|
-
* safeDate(1646711233171); // Tue Mar 08 2022 11:47:13 GMT+0800 (中国标准时间)
|
|
46
|
-
*/
|
|
47
3
|
function safeDate(value) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
4
|
+
var args = [];
|
|
5
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
6
|
+
args[_i - 1] = arguments[_i];
|
|
7
|
+
}
|
|
8
|
+
var safeValue = typeof value === 'string' ? value.replace(/[\\.-]/g, '/') : value;
|
|
9
|
+
if (args && args.length > 0) {
|
|
10
|
+
return new (Date.bind.apply(Date, __spreadArray([void 0, safeValue], __read(args), false)))();
|
|
11
|
+
}
|
|
12
|
+
return typeof safeValue === 'undefined' ? new Date() : new Date(safeValue);
|
|
57
13
|
}
|
|
58
|
-
|
|
14
|
+
|
|
15
|
+
export { safeDate as default };
|