util-helpers 4.12.4 → 4.12.7

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 (132) hide show
  1. package/README.md +9 -5
  2. package/dist/util-helpers.js +225 -363
  3. package/dist/util-helpers.js.map +1 -1
  4. package/dist/util-helpers.min.js +1 -1
  5. package/dist/util-helpers.min.js.map +1 -1
  6. package/esm/bytesToSize.js +5 -11
  7. package/esm/calculateCursorPosition.js +1 -1
  8. package/esm/dataURLToBlob.js +1 -1
  9. package/esm/divide.js +1 -0
  10. package/esm/formatBankCard.js +4 -8
  11. package/esm/formatMobile.js +9 -7
  12. package/esm/formatMoney.js +8 -14
  13. package/esm/isBankCard.js +6 -11
  14. package/esm/isBusinessLicense.js +7 -10
  15. package/esm/isChinese.js +10 -17
  16. package/esm/isEmail.js +2 -5
  17. package/esm/isHMCard.js +8 -8
  18. package/esm/isIPv4.js +4 -11
  19. package/esm/isIPv6.js +11 -29
  20. package/esm/isIdCard.js +9 -12
  21. package/esm/isMobile.js +2 -5
  22. package/esm/isPassport.js +2 -5
  23. package/esm/isPassword.js +14 -21
  24. package/esm/isPostcode.js +2 -5
  25. package/esm/isPromiseLike.js +4 -8
  26. package/esm/isQQ.js +2 -5
  27. package/esm/isSocialCreditCode.js +6 -11
  28. package/esm/isSwiftCode.js +5 -5
  29. package/esm/isTWCard.js +7 -4
  30. package/esm/isTelephone.js +7 -10
  31. package/esm/isUrl.js +8 -20
  32. package/esm/isVehicle.js +9 -14
  33. package/esm/isWX.js +2 -5
  34. package/esm/minus.js +4 -8
  35. package/esm/normalizeString.js +2 -0
  36. package/esm/numberToChinese.js +13 -19
  37. package/esm/padZero.js +9 -8
  38. package/esm/parseIdCard.js +8 -17
  39. package/esm/plus.js +4 -8
  40. package/esm/randomString.js +2 -0
  41. package/esm/replaceChar.js +9 -17
  42. package/esm/round.js +4 -8
  43. package/esm/safeDate.js +2 -0
  44. package/esm/setDataURLPrefix.js +2 -0
  45. package/esm/times.js +4 -8
  46. package/esm/utils/config.js +1 -1
  47. package/esm/utils/math.util.js +4 -9
  48. package/esm/waitTime.js +3 -1
  49. package/lib/bytesToSize.js +5 -11
  50. package/lib/calculateCursorPosition.js +1 -1
  51. package/lib/dataURLToBlob.js +1 -1
  52. package/lib/divide.js +1 -0
  53. package/lib/formatBankCard.js +4 -8
  54. package/lib/formatMobile.js +9 -7
  55. package/lib/formatMoney.js +8 -14
  56. package/lib/isBankCard.js +6 -11
  57. package/lib/isBusinessLicense.js +7 -10
  58. package/lib/isChinese.js +10 -17
  59. package/lib/isEmail.js +2 -5
  60. package/lib/isHMCard.js +8 -8
  61. package/lib/isIPv4.js +4 -11
  62. package/lib/isIPv6.js +11 -29
  63. package/lib/isIdCard.js +9 -12
  64. package/lib/isMobile.js +2 -5
  65. package/lib/isPassport.js +2 -5
  66. package/lib/isPassword.js +14 -21
  67. package/lib/isPostcode.js +2 -5
  68. package/lib/isPromiseLike.js +4 -8
  69. package/lib/isQQ.js +2 -5
  70. package/lib/isSocialCreditCode.js +6 -11
  71. package/lib/isSwiftCode.js +5 -5
  72. package/lib/isTWCard.js +7 -4
  73. package/lib/isTelephone.js +7 -10
  74. package/lib/isUrl.js +8 -20
  75. package/lib/isVehicle.js +9 -14
  76. package/lib/isWX.js +2 -5
  77. package/lib/minus.js +4 -8
  78. package/lib/normalizeString.js +2 -0
  79. package/lib/numberToChinese.js +13 -19
  80. package/lib/padZero.js +9 -8
  81. package/lib/parseIdCard.js +8 -19
  82. package/lib/plus.js +4 -8
  83. package/lib/randomString.js +2 -0
  84. package/lib/replaceChar.js +9 -17
  85. package/lib/round.js +4 -8
  86. package/lib/safeDate.js +2 -0
  87. package/lib/setDataURLPrefix.js +2 -0
  88. package/lib/times.js +4 -8
  89. package/lib/utils/config.js +1 -1
  90. package/lib/utils/math.util.js +4 -9
  91. package/lib/waitTime.js +3 -1
  92. package/package.json +1 -1
  93. package/types/src/bytesToSize.d.ts +4 -10
  94. package/types/src/dataURLToBlob.d.ts +1 -1
  95. package/types/src/divide.d.ts +1 -0
  96. package/types/src/formatBankCard.d.ts +4 -8
  97. package/types/src/formatMobile.d.ts +9 -7
  98. package/types/src/formatMoney.d.ts +8 -14
  99. package/types/src/isBankCard.d.ts +5 -10
  100. package/types/src/isBusinessLicense.d.ts +6 -9
  101. package/types/src/isChinese.d.ts +9 -16
  102. package/types/src/isEmail.d.ts +2 -5
  103. package/types/src/isHMCard.d.ts +8 -8
  104. package/types/src/isIPv4.d.ts +4 -11
  105. package/types/src/isIPv6.d.ts +11 -29
  106. package/types/src/isIdCard.d.ts +8 -11
  107. package/types/src/isMobile.d.ts +2 -5
  108. package/types/src/isPassport.d.ts +2 -5
  109. package/types/src/isPassword.d.ts +10 -17
  110. package/types/src/isPostcode.d.ts +2 -5
  111. package/types/src/isPromiseLike.d.ts +3 -7
  112. package/types/src/isQQ.d.ts +2 -5
  113. package/types/src/isSocialCreditCode.d.ts +6 -11
  114. package/types/src/isSwiftCode.d.ts +5 -5
  115. package/types/src/isTWCard.d.ts +7 -4
  116. package/types/src/isTelephone.d.ts +6 -9
  117. package/types/src/isUrl.d.ts +7 -19
  118. package/types/src/isVehicle.d.ts +8 -13
  119. package/types/src/isWX.d.ts +2 -5
  120. package/types/src/minus.d.ts +3 -7
  121. package/types/src/normalizeString.d.ts +2 -0
  122. package/types/src/numberToChinese.d.ts +10 -18
  123. package/types/src/padZero.d.ts +9 -8
  124. package/types/src/parseIdCard.d.ts +3 -3
  125. package/types/src/plus.d.ts +3 -7
  126. package/types/src/randomString.d.ts +2 -0
  127. package/types/src/replaceChar.d.ts +9 -17
  128. package/types/src/round.d.ts +3 -7
  129. package/types/src/safeDate.d.ts +2 -0
  130. package/types/src/setDataURLPrefix.d.ts +2 -0
  131. package/types/src/times.d.ts +3 -7
  132. package/types/src/waitTime.d.ts +3 -1
package/lib/isHMCard.js CHANGED
@@ -22,16 +22,16 @@ var regHMCard = /^[hm]{1}([0-9]{10}|[0-9]{8})$/i;
22
22
  * @returns {boolean} 是否为港澳居民来往内地通行证
23
23
  * @example
24
24
  * // 第一代 11 位
25
- * isHMCard('h3203117707') // true
26
- * isHMCard('H3203117707') // true
27
- * isHMCard('m3203117707') // true
28
- * isHMCard('M3203117707') // true
25
+ * isHMCard('h3203117707'); // true
26
+ * isHMCard('H3203117707'); // true
27
+ * isHMCard('m3203117707'); // true
28
+ * isHMCard('M3203117707'); // true
29
29
  *
30
30
  * // 第二代 9 位
31
- * isHMCard('h32031177') // true
32
- * isHMCard('H32031177') // true
33
- * isHMCard('m32031177') // true
34
- * isHMCard('M32031177') // true
31
+ * isHMCard('h32031177'); // true
32
+ * isHMCard('H32031177'); // true
33
+ * isHMCard('m32031177'); // true
34
+ * isHMCard('M32031177'); // true
35
35
  */
36
36
 
37
37
  function isHMCard(value) {
package/lib/isIPv4.js CHANGED
@@ -21,17 +21,10 @@ var reg = /^((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-
21
21
  * @returns {boolean} 值是否为ipv4
22
22
  * @example
23
23
  *
24
- * isIPv4('192.168.1.1');
25
- * // => true
26
- *
27
- * isIPv4('255.255.255.255');
28
- * // => true
29
- *
30
- * isIPv4('256.256.256.256');
31
- * // => false
32
- *
33
- * isIPv4('0.0');
34
- * // => false
24
+ * isIPv4('192.168.1.1'); // true
25
+ * isIPv4('255.255.255.255'); // true
26
+ * isIPv4('256.256.256.256'); // false
27
+ * isIPv4('0.0'); // false
35
28
  *
36
29
  */
37
30
 
package/lib/isIPv6.js CHANGED
@@ -22,41 +22,23 @@ var reg = /^((([0-9A-F]{1,4}:){7}([0-9A-F]{1,4}|:))|(([0-9A-F]{1,4}:){6}(:[0-9A-
22
22
  * @example
23
23
  *
24
24
  * // 冒分十六进制表示法
25
- * isIPv6('2001:0DB8:0000:0023:0008:0800:200C:417A');
26
- * // => true
25
+ * isIPv6('2001:0DB8:0000:0023:0008:0800:200C:417A'); // true
27
26
  *
28
27
  * // 前导0省略
29
- * isIPv6('2001:DB8:0:23:8:800:200C:417A');
30
- * // => true
31
- *
32
- * isIPv6('FF01:0:0:0:0:0:0:1101');
33
- * // => true
28
+ * isIPv6('2001:DB8:0:23:8:800:200C:417A'); // true
29
+ * isIPv6('FF01:0:0:0:0:0:0:1101'); // true
34
30
  *
35
31
  * // 0位压缩表示法
36
- * isIPv6('FF01::1101');
37
- * // => true
38
- *
39
- * isIPv6('::1');
40
- * // => true
41
- *
42
- * isIPv6('::');
43
- * // => true
44
- *
45
- * isIPv6('0:0:0:0:0:0:0:1');
46
- * // => true
47
- *
48
- * isIPv6('0:0:0:0:0:0:0:0');
49
- * // => true
32
+ * isIPv6('FF01::1101'); // true
33
+ * isIPv6('::1'); // true
34
+ * isIPv6('::'); // true
35
+ * isIPv6('0:0:0:0:0:0:0:1'); // true
36
+ * isIPv6('0:0:0:0:0:0:0:0'); // true
50
37
  *
51
38
  * // 内嵌IPv4地址表示法
52
- * isIPv6('::192.168.1.1');
53
- * // => true
54
- *
55
- * isIPv6('::FFFF:192.168.1.1');
56
- * // => true
57
- *
58
- * isIPv6('192.168.1.1');
59
- * // => false
39
+ * isIPv6('::192.168.1.1'); // true
40
+ * isIPv6('::FFFF:192.168.1.1'); // true
41
+ * isIPv6('192.168.1.1'); // false
60
42
  *
61
43
  */
62
44
 
package/lib/isIdCard.js CHANGED
@@ -49,20 +49,17 @@ function check(id) {
49
49
  * @returns {boolean} 值是否为身份证号
50
50
  * @example
51
51
  *
52
- * isIdCard('130701199310302288');
53
- * // => true
52
+ * isIdCard('130701199310302288'); // true
53
+ * isIdCard('13070119931030228X'); // false
54
54
  *
55
- * isIdCard('13070119931030228X');
56
- * // => false
55
+ * // 不校验校验码
56
+ * isIdCard('13070119931030228X', { checkCode: false }); // true
57
57
  *
58
- * isIdCard('13070119931030228X', { checkCode: false }); // 不校验校验码
59
- * // => true
60
- *
61
- * isIdCard('320311770706001');
62
- * // => false
63
- *
64
- * isIdCard('320311770706001', { loose: true });
65
- * // => true
58
+ * // 默认不支持15位身份证号码
59
+ * isIdCard('320311770706001'); // false
60
+ *
61
+ * // 宽松模式,支持15位身份证号
62
+ * isIdCard('320311770706001', { loose: true }); // true
66
63
  *
67
64
  */
68
65
 
package/lib/isMobile.js CHANGED
@@ -21,11 +21,8 @@ var reg = /^1[3456789]\d{9}$/;
21
21
  * @returns {boolean} 值是否为手机号码
22
22
  * @example
23
23
  *
24
- * isMobile('13000000000');
25
- * // => true
26
- *
27
- * isMobile('13000');
28
- * // => false
24
+ * isMobile('13000000000'); // true
25
+ * isMobile('13000'); // false
29
26
  *
30
27
  */
31
28
 
package/lib/isPassport.js CHANGED
@@ -23,11 +23,8 @@ var reg = /^((e[\da-z])|(de)|(se)|(pe)|([khm][\da-z]))[\da-z]{7}$/i;
23
23
  * @returns {boolean} 值是否为护照号
24
24
  * @example
25
25
  *
26
- * isPassport('E12345678');
27
- * // => true
28
- *
29
- * isPassport('abc');
30
- * // => false
26
+ * isPassport('E12345678'); // true
27
+ * isPassport('abc'); // false
31
28
  *
32
29
  */
33
30
 
package/lib/isPassword.js CHANGED
@@ -27,27 +27,20 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
27
27
  * @returns {boolean} 值是否符合密码强度
28
28
  * @example
29
29
  *
30
- * isPassword('a12345678');
31
- * // => true
32
- *
33
- * isPassword('a12345678', {level: 3});
34
- * // => false
35
- *
36
- * isPassword('Aa12345678', {level: 3});
37
- * // => true
38
- *
39
- * isPassword('Aa12345678', {level: 3, ignoreCase: true});
40
- * // => false
41
- *
42
- * isPassword('_Aa12345678', {level: 3, ignoreCase: true});
43
- * // => true
44
- *
45
- * // 仅支持 数字、字母、特殊字符,其他字符如中文字符是校验不通过的
46
- * isPassword('_Aa一二三45678', {level: 3, ignoreCase: true});
47
- * // => false
48
- *
49
- * isPassword(' _Aa12345678', {level: 3, ignoreCase: true});
50
- * // => false
30
+ * isPassword('a12345678'); // true
31
+ *
32
+ * // 3级密码强度
33
+ * isPassword('a12345678', {level: 3}); // false
34
+ * isPassword('Aa12345678', {level: 3}); // true
35
+ *
36
+ * // 3级密码强度,大小写字符仅计算1级强度
37
+ * isPassword('Aa12345678', {level: 3, ignoreCase: true}); // false
38
+ * isPassword('_Aa12345678', {level: 3, ignoreCase: true}); // true
39
+ *
40
+ * // 仅支持 数字、字母、特殊字符,其他非法字符如中文字符是校验不通过的
41
+ * isPassword('_Aa一二三45678', {level: 3, ignoreCase: true}); // false
42
+ * isPassword(' _Aa12345678', {level: 3, ignoreCase: true}); // false
43
+ *
51
44
  */
52
45
  function isPassword(value) {
53
46
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
package/lib/isPostcode.js CHANGED
@@ -21,11 +21,8 @@ var reg = /^\d{6}$/;
21
21
  * @returns {boolean} 值是否为邮政编码
22
22
  * @example
23
23
  *
24
- * isPostcode('101111');
25
- * // => true
26
- *
27
- * isPostcode('123');
28
- * // => false
24
+ * isPostcode('101111'); // true
25
+ * isPostcode('123'); // false
29
26
  *
30
27
  */
31
28
 
@@ -17,14 +17,10 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
17
17
  * @returns {boolean} 是否类似Promise对象
18
18
  * @example
19
19
  *
20
- * isPromiseLike([]);
21
- * => false
22
- *
23
- * isPromiseLike({then:()=>{}});
24
- * => true
25
- *
26
- * isPromiseLike(Promise.resolve());
27
- * => true
20
+ * isPromiseLike([]); // false
21
+ * isPromiseLike({ then: () => { } }); // true
22
+ * isPromiseLike(Promise.resolve()); // true
23
+ *
28
24
  */
29
25
  function isPromiseLike(obj) {
30
26
  return obj !== null && (_typeof(obj) === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
package/lib/isQQ.js CHANGED
@@ -21,11 +21,8 @@ var reg = /^[1-9]\d{4,10}$/;
21
21
  * @returns {boolean} 值是否为QQ号
22
22
  * @example
23
23
  *
24
- * isQQ('12345');
25
- * // => true
26
- *
27
- * isQQ('123');
28
- * // => false
24
+ * isQQ('12345'); // true
25
+ * isQQ('123'); // false
29
26
  *
30
27
  */
31
28
 
@@ -59,18 +59,13 @@ function sumCheckCode(preCode) {
59
59
  * @returns {boolean} 值是否为统一社会信用代码
60
60
  * @example
61
61
  *
62
- * isSocialCreditCode('91350100M000100Y43');
63
- * // => true
62
+ * isSocialCreditCode('91350100M000100Y43'); // true
63
+ * isSocialCreditCode('91350100M000100Y4A'); // false
64
64
  *
65
- * isSocialCreditCode('91350100M000100Y4A');
66
- * // => false
67
- *
68
- * // 不校验校验位
69
- * isSocialCreditCode('91350100M000100Y4A', { checkCode: false });
70
- * // => true
71
- *
72
- * isSocialCreditCode('91350100M000100Y', { checkCode: false });
73
- * // => false
65
+ * // 不校验校验位,长度和类型还是有校验的
66
+ * isSocialCreditCode('91350100M000100Y4A', { checkCode: false }); // true
67
+ * isSocialCreditCode('91350100M000100YIO', { checkCode: false }); // false
68
+ * isSocialCreditCode('91350100M000100Y', { checkCode: false }); // false
74
69
  *
75
70
  */
76
71
 
@@ -21,13 +21,13 @@ var reg = /^[A-Z]{6}[A-Z\d]{2}(?:[A-Z\d]{3})?$/;
21
21
  * @returns {boolean} 值是否为 Swift Code
22
22
  * @example
23
23
  *
24
- * isSwiftCode('DEUTDEFF') // true
25
- * isSwiftCode('deutdeff') // false
24
+ * isSwiftCode('DEUTDEFF'); // true
25
+ * isSwiftCode('deutdeff'); // false
26
26
  *
27
- * isSwiftCode('BKTWTWTP010') // true
28
- * isSwiftCode('010BKTWTWTP') // false
27
+ * isSwiftCode('BKTWTWTP010'); // true
28
+ * isSwiftCode('010BKTWTWTP'); // false
29
29
  *
30
- * isSwiftCode('ICBKCNBJBJM') // true
30
+ * isSwiftCode('ICBKCNBJBJM'); // true
31
31
  *
32
32
  */
33
33
 
package/lib/isTWCard.js CHANGED
@@ -25,12 +25,15 @@ var singleRegTWCard = /^[\da-z]{10,12}$/i;
25
25
  * @param {boolean} [options.loose=false] 宽松模式。如果为true,表示支持一次性短期通行证
26
26
  * @returns {boolean} 是否为台湾居民来往大陆通行证
27
27
  * @example
28
- * isTWCard('12345678') // true
29
- * isTWCard('07257456') // true
28
+ *
29
+ * isTWCard('12345678'); // true
30
+ * isTWCard('07257456'); // true
30
31
  *
31
32
  * // 一次性短期
32
- * isTWCard('F290299977') // false
33
- * isTWCard('F290299977', { loose: true }) // true
33
+ * isTWCard('F290299977'); // false
34
+ *
35
+ * // 宽松模式,支持一次性短期通行证
36
+ * isTWCard('F290299977', { loose: true }); // true
34
37
  */
35
38
 
36
39
  function isTWCard(value) {
@@ -21,17 +21,14 @@ var reg = /^(0\d{2,3}\-)?([2-9]\d{6,7})(\-\d{1,6})?$/;
21
21
  * @returns {boolean} 值是否为固定电话
22
22
  * @example
23
23
  *
24
- * isTelephone('22033212');
25
- * // => true
24
+ * isTelephone('22033212'); // true
25
+ * isTelephone('13000000000'); // false
26
+ *
27
+ * // 含区号
28
+ * isTelephone('021-22033212'); // true
26
29
  *
27
- * isTelephone('021-22033212');
28
- * // => true
29
- *
30
- * isTelephone('021-22033212-123');
31
- * // => true
32
- *
33
- * isTelephone('13000000000');
34
- * // => false
30
+ * // 含区号和分机号
31
+ * isTelephone('021-22033212-123'); // true
35
32
  *
36
33
  */
37
34
 
package/lib/isUrl.js CHANGED
@@ -22,26 +22,14 @@ var reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:
22
22
  * @returns {boolean} 值是否为url
23
23
  * @example
24
24
  *
25
- * isUrl('');
26
- * // => false
27
- *
28
- * isUrl('8.8.8.8');
29
- * // => false
30
- *
31
- * isUrl('example.com');
32
- * // => true
33
- *
34
- * isUrl('http://example.com');
35
- * // => true
36
- *
37
- * isUrl('https://example.com:8080');
38
- * // => true
39
- *
40
- * isUrl('http://www.example.com/test/123');
41
- * // => true
42
- *
43
- * isUrl('http://www.example.com/test/123?foo=bar');
44
- * // => true
25
+ * isUrl(''); // false
26
+ * isUrl('8.8.8.8'); // false
27
+ * isUrl('example.com'); // true
28
+ * isUrl('http://example.com'); // true
29
+ * isUrl('https://example.com:8080'); // true
30
+ * isUrl('http://www.example.com/test/123'); // true
31
+ * isUrl('http://www.example.com/test/123?foo=bar'); // true
32
+ *
45
33
  */
46
34
 
47
35
  function isUrl(value) {
package/lib/isVehicle.js CHANGED
@@ -22,20 +22,15 @@ var reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕
22
22
  * @returns {boolean} 值是否为车牌号
23
23
  * @example
24
24
  *
25
- * isVehicle('京L12345');
26
- * // => true
27
- *
28
- * isVehicle('粤BD12345');
29
- * // => true
30
- *
31
- * isVehicle('粤BF12345');
32
- * // => true
33
- *
34
- * isVehicle('粤B12345D');
35
- * // => true
36
- *
37
- * isVehicle('粤B12345F');
38
- * // => true
25
+ * isVehicle('京L12345'); // true
26
+ * isVehicle('京L1234学'); // true
27
+ * isVehicle('BL1234警'); // true
28
+ *
29
+ * // 新能源车牌
30
+ * isVehicle('粤BD12345'); // true
31
+ * isVehicle('粤BF12345'); // true
32
+ * isVehicle('粤B12345D'); // true
33
+ * isVehicle('粤B12345F'); // true
39
34
  *
40
35
  */
41
36
 
package/lib/isWX.js CHANGED
@@ -21,11 +21,8 @@ var reg = /^[a-z]([-_a-z0-9]{5,19})+$/i;
21
21
  * @returns {boolean} 值是否为微信号
22
22
  * @example
23
23
  *
24
- * isWX('a12345');
25
- * // => true
26
- *
27
- * isWX('123');
28
- * // => false
24
+ * isWX('a12345'); // true
25
+ * isWX('123'); // false
29
26
  *
30
27
  */
31
28
 
package/lib/minus.js CHANGED
@@ -33,14 +33,10 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
33
33
  * @returns {number} 差
34
34
  * @example
35
35
  *
36
- * minus(1, 0.9);
37
- * // => 0.1
38
- *
39
- * minus(1, 0.9, 0.02);
40
- * // => 0.08
41
- *
42
- * minus(1, 0.9, 0.02, 0.08);
43
- * // => 0
36
+ * minus(1, 0.9); // 0.1
37
+ * minus(1, 0.9, 0.02); // 0.08
38
+ * minus(1, 0.9, 0.02, 0.08); // 0
39
+ *
44
40
  */
45
41
  function minus() {
46
42
  for (var _len = arguments.length, nums = new Array(_len), _key = 0; _key < _len; _key++) {
@@ -21,6 +21,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
21
21
  * @param {*} value 待处理的值
22
22
  * @returns {string} 规整化的值
23
23
  * @example
24
+ *
24
25
  * normalizeString(); // ''
25
26
  * normalizeString(undefined); // ''
26
27
  * normalizeString(void 0); // ''
@@ -30,6 +31,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
30
31
  * normalizeString(NaN); // 'NaN'
31
32
  * normalizeString(1); // '1'
32
33
  * normalizeString('a'); // 'a'
34
+ *
33
35
  */
34
36
  function normalizeString(value) {
35
37
  if ((0, _isNil["default"])(value)) {
@@ -162,7 +162,7 @@ function mapNumberChar(num) {
162
162
  * @param {Object} [options] 配置项
163
163
  * @param {boolean} [options.big5=false] 繁体
164
164
  * @param {boolean} [options.unit=true] 计数单位
165
- * @param {string} [options.decimal="点"] 中文小数点
165
+ * @param {string} [options.decimal="点"] 中文小数点,繁体字为點
166
166
  * @param {string} [options.zero="零"] 设置0。常用配置 〇
167
167
  * @param {string} [options.negative="负"] 负数前面的字
168
168
  * @param {Object} [options.unitConfig] 节点单位配置
@@ -171,29 +171,21 @@ function mapNumberChar(num) {
171
171
  * @returns {string} 中文数字
172
172
  * @example
173
173
  *
174
- * numberToChinese(100);
175
- * // => 一百
176
- *
177
- * numberToChinese(100.3);
178
- * // => 一百点三
174
+ * numberToChinese(100); // 一百
175
+ * numberToChinese(100.3); // 一百点三
176
+ * numberToChinese(1234567890); // 一十二亿三千四百五十六万七千八百九十
177
+ * numberToChinese(1234567890.11); // 一十二亿三千四百五十六万七千八百九十点一一
179
178
  *
180
179
  * // 繁体
181
- * numberToChinese(100, {big5: true});
182
- * // => 壹佰
183
- *
184
- * numberToChinese(100.3, {big5: true});
185
- * // => 壹佰点叁
186
- *
187
- * numberToChinese(1234567890, {big5: true});
188
- * // => 壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾
180
+ * numberToChinese(100, {big5: true}); // 壹佰
181
+ * numberToChinese(100.3, {big5: true}); // 壹佰點叁
182
+ * numberToChinese(1234567890.11, {big5: true}); // 壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾點壹壹
189
183
  *
190
184
  * // 不带计数单位
191
- * numberToChinese(1990, {unit: false});
192
- * // => 一九九零
185
+ * numberToChinese(1990, {unit: false}); // 一九九零
193
186
  *
194
187
  * // 不带计数单位,修改0
195
- * numberToChinese(1990, {unit: false, zero:'〇'});
196
- * // => 一九九〇
188
+ * numberToChinese(1990, {unit: false, zero:'〇'}); // 一九九〇
197
189
  *
198
190
  */
199
191
 
@@ -205,7 +197,7 @@ function numberToChinese(num) {
205
197
  _ref$unit = _ref.unit,
206
198
  unit = _ref$unit === void 0 ? true : _ref$unit,
207
199
  _ref$decimal = _ref.decimal,
208
- decimal = _ref$decimal === void 0 ? '' : _ref$decimal,
200
+ decimal = _ref$decimal === void 0 ? '' : _ref$decimal,
209
201
  _ref$zero = _ref.zero,
210
202
  zero = _ref$zero === void 0 ? '' : _ref$zero,
211
203
  _ref$negative = _ref.negative,
@@ -225,9 +217,11 @@ function numberToChinese(num) {
225
217
  if (big5) {
226
218
  numberChar = big5NumberChar.slice();
227
219
  unitChar = big5UnitChar.slice();
220
+ decimal = decimal || '點';
228
221
  } else {
229
222
  numberChar = chnNumberChar.slice();
230
223
  unitChar = chnUnitChar.slice();
224
+ decimal = decimal || '点';
231
225
  } // 设置节点计数单位,万、亿、万亿
232
226
 
233
227
 
package/lib/padZero.js CHANGED
@@ -19,17 +19,18 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
19
19
  * @param {number} [size=2] 指定字符串长度
20
20
  * @returns {string} 用零填充数字到给定长度的字符串
21
21
  * @example
22
- * padZero(5); // '05'
23
- * padZero('5'); // '05'
22
+ * padZero(5); // 05
23
+ * padZero('5'); // 05
24
24
  *
25
- * padZero(12); // '12'
26
- * padZero('12'); // '12'
25
+ * padZero(12); // 12
26
+ * padZero('12'); // 12
27
27
  *
28
- * padZero(688); // '688'
29
- * padZero('688'); // '688'
28
+ * padZero(688); // 688
29
+ * padZero('688'); // 688
30
30
  *
31
- * padZero(688, 5); // '00688'
32
- * padZero('688', 5); // '00688'
31
+ * padZero(688, 5); // 00688
32
+ * padZero('688', 5); // 00688
33
+ *
33
34
  */
34
35
  function padZero(value) {
35
36
  var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
@@ -7,10 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
 
10
- var _isIdCard = _interopRequireDefault(require("./isIdCard"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
-
14
10
  function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(re, groups) { return new BabelRegExp(re, undefined, groups); }; var _super = RegExp.prototype; var _groups = new WeakMap(); function BabelRegExp(re, flags, groups) { var _this = new RegExp(re, flags); _groups.set(_this, groups || _groups.get(re)); return _setPrototypeOf(_this, BabelRegExp.prototype); } _inherits(BabelRegExp, RegExp); BabelRegExp.prototype.exec = function (str) { var result = _super.exec.call(this, str); if (result) result.groups = buildGroups(result, this); return result; }; BabelRegExp.prototype[Symbol.replace] = function (str, substitution) { if (typeof substitution === "string") { var groups = _groups.get(this); return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) { return "$" + groups[name]; })); } else if (typeof substitution === "function") { var _this = this; return _super[Symbol.replace].call(this, str, function () { var args = arguments; if (_typeof(args[args.length - 1]) !== "object") { args = [].slice.call(args); args.push(buildGroups(args, _this)); } return substitution.apply(this, args); }); } else { return _super[Symbol.replace].call(this, str, substitution); } }; function buildGroups(result, re) { var g = _groups.get(re); return Object.keys(g).reduce(function (groups, name) { groups[name] = result[g[name]]; return groups; }, Object.create(null)); } return _wrapRegExp.apply(this, arguments); }
15
11
 
16
12
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
@@ -78,11 +74,11 @@ var Provinces = [// 华北地区:北京市|110000,天津市|120000,河北
78
74
  * @param {string} id 身份证号码,支持15位
79
75
  * @returns {null|IdCardInfo} null 或 省份、生日、性别,省/市/区/年/月/日/性别编码
80
76
  * @example
81
- * parseIdCard('123456789123456');
82
- * // => null
77
+ *
78
+ * parseIdCard('123456789123456'); // null
83
79
  *
84
80
  * // 18位身份证号码
85
- * parseIdCard('130701199310302288')
81
+ * parseIdCard('130701199310302288');
86
82
  * // =>
87
83
  * {
88
84
  * birthday: "1993-10-30",
@@ -104,24 +100,17 @@ var Provinces = [// 华北地区:北京市|110000,天津市|120000,河北
104
100
  */
105
101
 
106
102
  function parseIdCard(id) {
107
- if (!(0, _isIdCard["default"])(id, {
108
- loose: true
109
- })) {
103
+ if (!regIdCard.test(id)) {
110
104
  return null;
111
105
  }
106
+ /** @type {RegExpExecArray} */
107
+ // @ts-ignore
112
108
 
113
- var info = regIdCard.exec(id);
114
109
 
115
- if (!info) {
116
- return null;
117
- }
118
- /**
119
- * @type {{ province: string, city: string, area: string, year: string, month: string, day: string, gender: string }}
120
- *
121
- */
110
+ var info = regIdCard.exec(id);
111
+ /** @type {{ province: string, city: string, area: string, year: string, month: string, day: string, gender: string }} */
122
112
  // @ts-ignore
123
113
 
124
-
125
114
  var origin = (info === null || info === void 0 ? void 0 : info.groups) || {
126
115
  province: info[1],
127
116
  city: info[2],
package/lib/plus.js CHANGED
@@ -33,14 +33,10 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
33
33
  * @returns {number} 总和
34
34
  * @example
35
35
  *
36
- * plus(0.1, 0.2);
37
- * // => 0.3
38
- *
39
- * plus(0.1, 0.2, 0.3);
40
- * // => 0.6
41
- *
42
- * plus(0.1, 0.2, 0.3, 0.4);
43
- * // => 1
36
+ * plus(0.1, 0.2); // 0.3
37
+ * plus(0.1, 0.2, 0.3); // 0.6
38
+ * plus(0.1, 0.2, 0.3, 0.4); // 1
39
+ *
44
40
  */
45
41
  function plus() {
46
42
  for (var _len = arguments.length, nums = new Array(_len), _key = 0; _key < _len; _key++) {
@@ -37,12 +37,14 @@ function internalRandomString() {
37
37
  * @param {string} [optionalChars='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'] 允许的字符,默认为数字和大小写字母
38
38
  * @returns {string} 随机字符串
39
39
  * @example
40
+ *
40
41
  * randomString(5); // slk23
41
42
  * randomString(8); // 71mHqo2A
42
43
  *
43
44
  * // 自定义允许的字符
44
45
  * randomString(5, 'abc'); // ccbcb
45
46
  * randomString(8, 'abcefg'); // bcgcfabg
47
+ *
46
48
  */
47
49
 
48
50