util-helpers 4.16.2 → 4.17.1

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.
Files changed (259) hide show
  1. package/dist/util-helpers.js +1600 -4039
  2. package/dist/util-helpers.js.map +1 -1
  3. package/dist/util-helpers.min.js +1 -1
  4. package/dist/util-helpers.min.js.map +1 -1
  5. package/esm/ajax.js +50 -146
  6. package/esm/blobToDataURL.js +4 -34
  7. package/esm/bytesToSize.js +12 -37
  8. package/esm/calculateCursorPosition.js +30 -52
  9. package/esm/dataURLToBlob.js +14 -28
  10. package/esm/divide.js +24 -48
  11. package/esm/download.js +83 -164
  12. package/esm/fileReader.js +18 -64
  13. package/esm/filterTree.js +25 -55
  14. package/esm/findTreeNode.js +39 -67
  15. package/esm/findTreeNodes.js +35 -66
  16. package/esm/findTreeSelect.js +38 -74
  17. package/esm/formatBankCard.js +13 -43
  18. package/esm/formatMobile.js +17 -43
  19. package/esm/formatMoney.js +59 -139
  20. package/esm/index.js +55 -130
  21. package/esm/isBankCard.js +22 -57
  22. package/esm/isBusinessLicense.js +32 -78
  23. package/esm/isChinese.js +23 -66
  24. package/esm/isEmail.js +6 -21
  25. package/esm/isHMCard.js +5 -28
  26. package/esm/isIPv4.js +5 -22
  27. package/esm/isIPv6.js +5 -36
  28. package/esm/isIdCard.js +27 -66
  29. package/esm/isMobile.js +5 -20
  30. package/esm/isPassport.js +5 -22
  31. package/esm/isPassword.js +7 -48
  32. package/esm/isPostcode.js +5 -20
  33. package/esm/isPromiseLike.js +3 -18
  34. package/esm/isQQ.js +5 -20
  35. package/esm/isSocialCreditCode.js +28 -83
  36. package/esm/isSwiftCode.js +6 -25
  37. package/esm/isTWCard.js +11 -37
  38. package/esm/isTelephone.js +6 -27
  39. package/esm/isUrl.js +5 -44
  40. package/esm/isVehicle.js +5 -28
  41. package/esm/isWX.js +5 -20
  42. package/esm/listToTree.js +51 -120
  43. package/esm/minus.js +21 -39
  44. package/esm/normalizeString.js +8 -29
  45. package/esm/numberToChinese.js +96 -215
  46. package/esm/padZero.js +14 -36
  47. package/esm/parseIdCard.js +64 -129
  48. package/esm/plus.js +21 -39
  49. package/esm/randomString.js +13 -45
  50. package/esm/replaceChar.js +27 -77
  51. package/esm/round.js +14 -31
  52. package/esm/safeDate.js +12 -55
  53. package/esm/setDataURLPrefix.js +6 -29
  54. package/esm/strlen.js +14 -30
  55. package/esm/times.js +24 -42
  56. package/esm/transformFieldNames.js +37 -93
  57. package/esm/treeToList.js +25 -84
  58. package/esm/utils/config.js +4 -14
  59. package/esm/utils/constants.js +4 -4
  60. package/esm/utils/convertToString.js +4 -9
  61. package/esm/utils/devWarn.js +11 -11
  62. package/esm/utils/math.util.js +95 -181
  63. package/esm/utils/type/isBlob.js +4 -24
  64. package/esm/utils/type/isNaN.js +4 -19
  65. package/esm/utils/type/isNil.js +5 -13
  66. package/esm/utils/type/isNull.js +3 -18
  67. package/esm/utils/type/isNumber.js +4 -28
  68. package/esm/utils/type/isObject.js +4 -23
  69. package/esm/utils/type/isString.js +4 -19
  70. package/esm/utils/type/isSymbol.js +4 -19
  71. package/esm/utils/type/isType.js +3 -12
  72. package/esm/utils/type/isUndefined.js +3 -21
  73. package/esm/validatePassword.js +86 -237
  74. package/esm/waitTime.js +7 -26
  75. package/lib/ajax.js +51 -152
  76. package/lib/blobToDataURL.js +5 -40
  77. package/lib/bytesToSize.js +13 -43
  78. package/lib/calculateCursorPosition.js +32 -58
  79. package/lib/dataURLToBlob.js +15 -34
  80. package/lib/divide.js +26 -60
  81. package/lib/download.js +85 -169
  82. package/lib/fileReader.js +19 -70
  83. package/lib/filterTree.js +27 -66
  84. package/lib/findTreeNode.js +40 -77
  85. package/lib/findTreeNodes.js +36 -76
  86. package/lib/findTreeSelect.js +40 -82
  87. package/lib/formatBankCard.js +15 -50
  88. package/lib/formatMobile.js +19 -50
  89. package/lib/formatMoney.js +60 -150
  90. package/lib/index.js +117 -395
  91. package/lib/isBankCard.js +24 -64
  92. package/lib/isBusinessLicense.js +34 -85
  93. package/lib/isChinese.js +24 -73
  94. package/lib/isEmail.js +7 -27
  95. package/lib/isHMCard.js +7 -35
  96. package/lib/isIPv4.js +7 -29
  97. package/lib/isIPv6.js +7 -43
  98. package/lib/isIdCard.js +29 -73
  99. package/lib/isMobile.js +7 -27
  100. package/lib/isPassport.js +7 -29
  101. package/lib/isPassword.js +9 -55
  102. package/lib/isPostcode.js +7 -27
  103. package/lib/isPromiseLike.js +4 -24
  104. package/lib/isQQ.js +7 -27
  105. package/lib/isSocialCreditCode.js +30 -90
  106. package/lib/isSwiftCode.js +7 -32
  107. package/lib/isTWCard.js +13 -44
  108. package/lib/isTelephone.js +7 -33
  109. package/lib/isUrl.js +6 -49
  110. package/lib/isVehicle.js +7 -35
  111. package/lib/isWX.js +7 -27
  112. package/lib/listToTree.js +53 -131
  113. package/lib/minus.js +23 -51
  114. package/lib/normalizeString.js +10 -36
  115. package/lib/numberToChinese.js +98 -222
  116. package/lib/padZero.js +16 -43
  117. package/lib/parseIdCard.js +65 -138
  118. package/lib/plus.js +23 -51
  119. package/lib/randomString.js +14 -51
  120. package/lib/replaceChar.js +28 -83
  121. package/lib/round.js +15 -37
  122. package/lib/safeDate.js +13 -63
  123. package/lib/setDataURLPrefix.js +7 -35
  124. package/lib/strlen.js +16 -37
  125. package/lib/times.js +26 -53
  126. package/lib/transformFieldNames.js +38 -101
  127. package/lib/treeToList.js +27 -94
  128. package/lib/utils/config.js +6 -23
  129. package/lib/utils/constants.js +3 -11
  130. package/lib/utils/convertToString.js +6 -16
  131. package/lib/utils/devWarn.js +13 -17
  132. package/lib/utils/math.util.js +95 -185
  133. package/lib/utils/type/isBlob.js +6 -31
  134. package/lib/utils/type/isNaN.js +6 -26
  135. package/lib/utils/type/isNil.js +7 -20
  136. package/lib/utils/type/isNull.js +4 -24
  137. package/lib/utils/type/isNumber.js +6 -35
  138. package/lib/utils/type/isObject.js +5 -29
  139. package/lib/utils/type/isString.js +6 -26
  140. package/lib/utils/type/isSymbol.js +6 -26
  141. package/lib/utils/type/isType.js +4 -18
  142. package/lib/utils/type/isUndefined.js +4 -27
  143. package/lib/validatePassword.js +87 -244
  144. package/lib/waitTime.js +8 -32
  145. package/package.json +21 -25
  146. package/types/ajax.d.ts +38 -95
  147. package/types/blobToDataURL.d.ts +2 -2
  148. package/types/bytesToSize.d.ts +7 -6
  149. package/types/calculateCursorPosition.d.ts +10 -9
  150. package/types/dataURLToBlob.d.ts +5 -5
  151. package/types/divide.d.ts +2 -2
  152. package/types/download.d.ts +22 -38
  153. package/types/fileReader.d.ts +35 -2
  154. package/types/filterTree.d.ts +6 -7
  155. package/types/findTreeNode.d.ts +5 -7
  156. package/types/findTreeNodes.d.ts +5 -7
  157. package/types/findTreeSelect.d.ts +5 -7
  158. package/types/formatBankCard.d.ts +8 -5
  159. package/types/formatMobile.d.ts +7 -4
  160. package/types/formatMoney.d.ts +8 -7
  161. package/types/index.d.ts +125 -55
  162. package/types/isBankCard.d.ts +9 -8
  163. package/types/isBusinessLicense.d.ts +8 -5
  164. package/types/isChinese.d.ts +9 -8
  165. package/types/isEmail.d.ts +1 -1
  166. package/types/isHMCard.d.ts +2 -2
  167. package/types/isIPv4.d.ts +1 -1
  168. package/types/isIPv6.d.ts +1 -1
  169. package/types/isIdCard.d.ts +8 -7
  170. package/types/isMobile.d.ts +1 -1
  171. package/types/isPassport.d.ts +2 -2
  172. package/types/isPassword.d.ts +4 -7
  173. package/types/isPostcode.d.ts +1 -1
  174. package/types/isPromiseLike.d.ts +1 -1
  175. package/types/isQQ.d.ts +1 -1
  176. package/types/isSocialCreditCode.d.ts +8 -5
  177. package/types/isSwiftCode.d.ts +2 -2
  178. package/types/isTWCard.d.ts +6 -5
  179. package/types/isTelephone.d.ts +1 -1
  180. package/types/isUrl.d.ts +2 -2
  181. package/types/isVehicle.d.ts +2 -2
  182. package/types/isWX.d.ts +1 -1
  183. package/types/listToTree.d.ts +12 -12
  184. package/types/minus.d.ts +3 -2
  185. package/types/normalizeString.d.ts +2 -2
  186. package/types/numberToChinese.d.ts +13 -12
  187. package/types/padZero.d.ts +2 -2
  188. package/types/parseIdCard.d.ts +17 -56
  189. package/types/plus.d.ts +3 -2
  190. package/types/randomString.d.ts +2 -2
  191. package/types/replaceChar.d.ts +15 -11
  192. package/types/round.d.ts +2 -2
  193. package/types/safeDate.d.ts +24 -2
  194. package/types/setDataURLPrefix.d.ts +5 -5
  195. package/types/strlen.d.ts +1 -1
  196. package/types/times.d.ts +3 -2
  197. package/types/transformFieldNames.d.ts +12 -10
  198. package/types/treeToList.d.ts +1 -1
  199. package/types/utils/config.d.ts +6 -5
  200. package/types/utils/constants.d.ts +2 -2
  201. package/types/utils/convertToString.d.ts +1 -1
  202. package/types/utils/devWarn.d.ts +1 -1
  203. package/types/utils/math.util.d.ts +15 -9
  204. package/types/utils/type/index.d.ts +7 -0
  205. package/types/utils/type/isArguments.d.ts +1 -1
  206. package/types/utils/type/isArray.d.ts +1 -1
  207. package/types/utils/type/isArrayBuffer.d.ts +1 -1
  208. package/types/utils/type/isBlob.d.ts +1 -1
  209. package/types/utils/type/isBoolean.d.ts +1 -1
  210. package/types/utils/type/isDate.d.ts +1 -1
  211. package/types/utils/type/isError.d.ts +1 -1
  212. package/types/utils/type/isFunction.d.ts +1 -1
  213. package/types/utils/type/isMap.d.ts +1 -1
  214. package/types/utils/type/isNaN.d.ts +1 -1
  215. package/types/utils/type/isNil.d.ts +1 -1
  216. package/types/utils/type/isNull.d.ts +1 -1
  217. package/types/utils/type/isNumber.d.ts +1 -1
  218. package/types/utils/type/isObject.d.ts +1 -1
  219. package/types/utils/type/isRegExp.d.ts +1 -1
  220. package/types/utils/type/isSet.d.ts +1 -1
  221. package/types/utils/type/isString.d.ts +1 -1
  222. package/types/utils/type/isSymbol.d.ts +1 -1
  223. package/types/utils/type/isType.d.ts +1 -1
  224. package/types/utils/type/isUndefined.d.ts +1 -1
  225. package/types/utils/type/isWeakMap.d.ts +1 -1
  226. package/types/utils/type/isWeakSet.d.ts +1 -1
  227. package/types/validatePassword.d.ts +17 -48
  228. package/types/waitTime.d.ts +2 -2
  229. package/esm/interface.doc.js +0 -125
  230. package/esm/interface.type.js +0 -17
  231. package/esm/utils/type/index.js +0 -29
  232. package/esm/utils/type/isArguments.js +0 -22
  233. package/esm/utils/type/isArray.js +0 -22
  234. package/esm/utils/type/isArrayBuffer.js +0 -25
  235. package/esm/utils/type/isBoolean.js +0 -22
  236. package/esm/utils/type/isDate.js +0 -22
  237. package/esm/utils/type/isError.js +0 -22
  238. package/esm/utils/type/isFunction.js +0 -22
  239. package/esm/utils/type/isMap.js +0 -22
  240. package/esm/utils/type/isRegExp.js +0 -22
  241. package/esm/utils/type/isSet.js +0 -22
  242. package/esm/utils/type/isWeakMap.js +0 -22
  243. package/esm/utils/type/isWeakSet.js +0 -22
  244. package/lib/interface.doc.js +0 -127
  245. package/lib/interface.type.js +0 -5
  246. package/lib/utils/type/index.js +0 -146
  247. package/lib/utils/type/isArguments.js +0 -29
  248. package/lib/utils/type/isArray.js +0 -29
  249. package/lib/utils/type/isArrayBuffer.js +0 -32
  250. package/lib/utils/type/isBoolean.js +0 -29
  251. package/lib/utils/type/isDate.js +0 -29
  252. package/lib/utils/type/isError.js +0 -29
  253. package/lib/utils/type/isFunction.js +0 -29
  254. package/lib/utils/type/isMap.js +0 -29
  255. package/lib/utils/type/isRegExp.js +0 -29
  256. package/lib/utils/type/isSet.js +0 -29
  257. package/lib/utils/type/isWeakMap.js +0 -29
  258. package/lib/utils/type/isWeakSet.js +0 -29
  259. 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
- * @static
7
- * @alias module:Processor.padZero
8
- * @since 4.7.0
9
- * @param {string|number} value 要处理的值
10
- * @param {number} [size=2] 指定字符串长度
11
- * @returns {string} 用零填充数字到给定长度的字符串
12
- * @example
13
- * padZero(5); // 05
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
- export default padZero;
15
+
16
+ export { padZero as default };
@@ -1,132 +1,67 @@
1
- import _wrapRegExp from "@babel/runtime/helpers/wrapRegExp";
2
- var regIdCard = /*#__PURE__*/_wrapRegExp(/^(\d{2})(\d{2})(\d{2})((?:\d{2})?\d{2})(\d{2})(\d{2})\d{2}(\d)(?:\d|X)?$/i, {
3
- province: 1,
4
- city: 2,
5
- area: 3,
6
- year: 4,
7
- month: 5,
8
- day: 6,
9
- gender: 7
10
- });
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;
11
2
  var Provinces = [
12
- // 华北地区:北京市|110000,天津市|120000,河北省|130000,山西省|140000,内蒙古自治区|150000
13
- ['11', '北京市'], ['12', '天津市'], ['13', '河北省'], ['14', '山西省'], ['15', '内蒙古自治区'],
14
- // 东北地区: 辽宁省|210000,吉林省|220000,黑龙江省|230000
15
- ['21', '辽宁省'], ['22', '吉林省'], ['23', '黑龙江省'],
16
- // 华东地区: 上海市|310000,江苏省|320000,浙江省|330000,安徽省|340000,福建省|350000,江西省|360000,山东省|370000
17
- ['31', '上海市'], ['32', '江苏省'], ['33', '浙江省'], ['34', '安徽省'], ['35', '福建省'], ['36', '江西省'], ['37', '山东省'],
18
- // 华中地区: 河南省|410000,湖北省|420000,湖南省|430000
19
- ['41', '河南省'], ['42', '湖北省'], ['43', '湖南省'],
20
- // 华南地区:广东省|440000,广西壮族自治区|450000,海南省|460000
21
- ['44', '广东省'], ['45', '广西壮族自治区'], ['46', '海南省'],
22
- // 西南地区:重庆市|500000,四川省|510000,贵州省|520000,云南省|530000,西藏自治区|540000
23
- ['50', '重庆市'], ['51', '四川省'], ['52', '贵州省'], ['53', '云南省'], ['54', '西藏自治区'],
24
- // 西北地区: 陕西省|610000,甘肃省|620000,青海省|630000,宁夏回族自治区|640000,新疆维吾尔自治区|650000
25
- ['61', '陕西省'], ['62', '甘肃省'], ['63', '青海省'], ['64', '宁夏回族自治区'], ['65', '新疆维吾尔自治区'],
26
- // 台湾地区:台湾省|710000
27
- // 台湾居民公民身份号码地址码为830000,参考 http://www.wanweibaike.com/wiki-中华人民共和国行政区划代码_(7区)、https://zh.wikipedia.org/wiki/港澳台居民居住证
28
- ['71', '台湾省'], ['83', '台湾省'],
29
- // 港澳地区:香港特别行政区|810000,澳门特别行政区|820000
30
- ['81', '香港特别行政区'], ['82', '澳门特别行政区']];
31
-
32
- // 第一位数字是以前的大区制代码。第二位是大区所在省市编码。全国共分为8个大区:华北(1)、东北(2)、华东(3)、中南(4)、西南(5)、西北(6)、台湾(7)和港澳(8)。
33
- // const Regions = [
34
- // ['1', '华北地区'],
35
- // ['2', '东北地区'],
36
- // ['3', '华东地区'],
37
- // ['4', '中南地区'],
38
- // ['5', '西南地区'],
39
- // ['6', '西北地区'],
40
- // ['7', '台湾地区'],
41
- // ['8', '港澳地区']
42
- // ];
43
-
44
- /**
45
- * @typedef {Object} IdCardOrigin - 解析身份证原数据
46
- * @property {string} province - 省份编码
47
- * @property {string} city - 城市编码
48
- * @property {string} area - 地区编码
49
- * @property {string} year - 出生年
50
- * @property {string} month - 出生月
51
- * @property {string} day - 出生日
52
- * @property {string} gender - 性别 能整除2为女,否则为男
53
- */
54
-
55
- /**
56
- * @typedef {Object} IdCardInfo - 身份证信息
57
- * @property {string} province - 省份
58
- * @property {string} birthday - 生日
59
- * @property {string} gender - 性别
60
- * @property {IdCardOrigin} origin - 解析身份证原数据
61
- */
62
-
63
- /**
64
- * 解析身份证号码,支持15、18位身份证号码
65
- *
66
- * @static
67
- * @alias module:Processor.parseIdCard
68
- * @since 4.0.0
69
- * @see {@link https://baike.baidu.com/item/居民身份证号码|居民身份证号码}
70
- * @param {string} id 身份证号码,支持15位
71
- * @returns {IdCardInfo | null} 省份、生日、性别,省/市/区/年/月/日/性别编码。如果解析失败将返回 null 。
72
- * @example
73
- *
74
- * parseIdCard('123456789123456'); // null
75
- *
76
- * // 18位身份证号码
77
- * parseIdCard('130701199310302288');
78
- * // =>
79
- * {
80
- * birthday: "1993-10-30",
81
- * gender: "女",
82
- * origin: { province: "13", city: "07", area: "01", year: "1993", month: "10", day: "30", gender: "8" },
83
- * province: "河北省"
84
- * }
85
- *
86
- * // 15位身份证号码
87
- * parseIdCard('130701931030228');
88
- * // =>
89
- * {
90
- * birthday: "93-10-30",
91
- * gender: "女",
92
- * origin: { province: "13", city: "07", area: "01", year: "93", month: "10", day: "30", gender: "8" },
93
- * province: "河北省"
94
- * }
95
- *
96
- */
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
+ ];
97
39
  function parseIdCard(id) {
98
- var match = regIdCard.exec(id);
99
- if (!match) {
100
- return null;
101
- }
102
-
103
- /** @type {{ province: string, city: string, area: string, year: string, month: string, day: string, gender: string }} */
104
- // @ts-ignore
105
- var origin = match.groups || {
106
- province: match[1],
107
- city: match[2],
108
- area: match[3],
109
- year: match[4],
110
- month: match[5],
111
- day: match[6],
112
- gender: match[7]
113
- };
114
- var province = Provinces.find(function (item) {
115
- return item[0] === origin.province;
116
- });
117
- if (!province) {
118
- return null;
119
- }
120
- var birthday = "".concat(origin.year, "-").concat(origin.month, "-").concat(origin.day);
121
- var gender = Number(origin.gender) % 2 === 0 ? '女' : '男';
122
- // const region = Regions.find(item => item[0] === origin.province?.substring(0, 1));
123
-
124
- return {
125
- // region,
126
- province: province[1],
127
- birthday: birthday,
128
- gender: gender,
129
- origin: origin
130
- };
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
+ };
131
65
  }
132
- export default parseIdCard;
66
+
67
+ export { parseIdCard as default };
package/esm/plus.js CHANGED
@@ -1,42 +1,24 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
- import { digitLength, transformEffectiveNumber } from './utils/math.util';
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
- for (var _len = arguments.length, nums = new Array(_len), _key = 0; _key < _len; _key++) {
22
- nums[_key] = arguments[_key];
23
- }
24
- var num1 = nums[0],
25
- _nums$ = nums[1],
26
- num2 = _nums$ === void 0 ? 0 : _nums$,
27
- rest = nums.slice(2);
28
- if (rest.length > 0) {
29
- return plus.apply(void 0, [plus(num1, num2)].concat(_toConsumableArray(rest)));
30
- }
31
- num1 = transformEffectiveNumber(num1);
32
- num2 = transformEffectiveNumber(num2);
33
-
34
- // 兼容处理,如果参数包含无效数值时,返回 NaN
35
- // @ts-ignore
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
- export default plus;
23
+
24
+ export { plus as default };
@@ -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
- * @private
7
- * @param {number} len 长度
8
- * @param {string} optionalChars 允许的字符,默认为数字和大小写字母
9
- * @param {string} [prefix=''] 前缀部分,不计入长度
10
- * @returns {string}
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
- export default randomString;
17
+
18
+ export { randomString as default };
@@ -1,79 +1,29 @@
1
- import normalizeString from './normalizeString';
1
+ import normalizeString from './normalizeString.js';
2
2
 
3
- /**
4
- * 替换字符,应用场景如:脱敏
5
- *
6
- * @static
7
- * @alias module:Processor.replaceChar
8
- * @since 1.1.0
9
- * @param {string} str 要处理的字符串
10
- * @param {Object} [options] 配置项
11
- * @param {number} [options.start=3] 开始位置
12
- * @param {number} [options.end=-4] 结束位置
13
- * @param {string} [options.char="*"] 替换字符
14
- * @param {number} [options.repeat] 替换字符的重复次数,默认为替换内容长度,可设置为固定值
15
- * @param {string} [options.exclude] 排除字符,如果指定排除项,repeat设置无效
16
- * @returns {string} 处理后的字符
17
- * @example
18
- *
19
- * // 手机号 前3后4
20
- * replaceChar('13000000000'); // 130****0000
21
- *
22
- * // 身份证 前6后4
23
- * replaceChar('130701199310302288', { start: 6, end: -4 }); // 130701********2288
24
- *
25
- * // 邮箱 @前两位
26
- * const email = '12345@qq.com'
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
- export default replaceChar;
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
- * @static
9
- * @alias module:Math.round
10
- * @since 3.1.0
11
- * @param {number|string} num 要四舍五入的数字
12
- * @param {number} [precision=0] 四舍五入的精度
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
- export default round;
15
+
16
+ export { round as default };
package/esm/safeDate.js CHANGED
@@ -1,58 +1,15 @@
1
- import _construct from "@babel/runtime/helpers/construct";
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
- var safeValue = typeof value === 'string' ? value.replace(/[\\.-]/g, '/') : value;
49
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
50
- args[_key - 1] = arguments[_key];
51
- }
52
- if (args && args.length > 0) {
53
- // @ts-ignore
54
- return _construct(Date, [safeValue].concat(args));
55
- }
56
- return typeof safeValue === 'undefined' ? new Date() : new Date(safeValue);
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
- export default safeDate;
14
+
15
+ export { safeDate as default };
@@ -1,30 +1,7 @@
1
- /**
2
- * 设置 DataURL 前缀、MIME 类型、base64 标识。<br/>
3
- * 如果你需要获取DataURL MIME 类型和数据本身,推荐使用 <a href="https://www.npmjs.com/package/data-urls">data-urls</a>。
4
- *
5
- * @static
6
- * @alias module:Processor.setDataURLPrefix
7
- * @since 4.1.0
8
- * @see {@link https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URIs|Data URLs}
9
- * @see {@link https://mimesniff.spec.whatwg.org/#understanding-mime-types|MIME types}
10
- * @param {string} data 数据本身
11
- * @param {string} [mimetype="image/png"] MIME 类型
12
- * @param {boolean} [base64=true] 添加 base64 标识
13
- * @returns {string} DataURL 格式的字符串
14
- * @example
15
- *
16
- * const data = 'PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=';
17
- * setDataURLPrefix(data); // data:image/png;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
18
- * setDataURLPrefix(data, 'image/png', false); // data:image/png,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
19
- * setDataURLPrefix(data, 'image/jpg'); // data:image/jpg;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
20
- * setDataURLPrefix(data, 'text/html'); // data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
21
- * setDataURLPrefix(data, ''); // data:;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
22
- * setDataURLPrefix(data, '', false); // data:,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
23
- *
24
- */
25
- function setDataURLPrefix(data) {
26
- var mimetype = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'image/png';
27
- var base64 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
28
- return "data:".concat(mimetype).concat(base64 ? ';base64' : '', ",").concat(data);
1
+ function setDataURLPrefix(data, mimeType, base64) {
2
+ if (mimeType === void 0) { mimeType = 'image/png'; }
3
+ if (base64 === void 0) { base64 = true; }
4
+ return "data:".concat(mimeType).concat(base64 ? ';base64' : '', ",").concat(data);
29
5
  }
30
- export default setDataURLPrefix;
6
+
7
+ export { setDataURLPrefix as default };