util-helpers 4.8.3 → 4.10.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 (55) hide show
  1. package/README.md +3 -1
  2. package/dist/util-helpers.js +189 -128
  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/index.js +2 -0
  7. package/esm/isBankCard.js +2 -2
  8. package/esm/isBusinessLicense.js +2 -2
  9. package/esm/isChinese.js +2 -2
  10. package/esm/isEmail.js +2 -2
  11. package/esm/isHMCard.js +2 -2
  12. package/esm/isIPv4.js +2 -2
  13. package/esm/isIPv6.js +2 -2
  14. package/esm/isIdCard.js +2 -2
  15. package/esm/isMobile.js +2 -2
  16. package/esm/isPassport.js +4 -4
  17. package/esm/isPostcode.js +2 -2
  18. package/esm/isQQ.js +2 -2
  19. package/esm/isSocialCreditCode.js +2 -2
  20. package/esm/isSwiftCode.js +29 -0
  21. package/esm/isTWCard.js +2 -2
  22. package/esm/isTelephone.js +2 -2
  23. package/esm/isUrl.js +2 -2
  24. package/esm/isVehicle.js +2 -2
  25. package/esm/isWX.js +2 -2
  26. package/esm/randomString.js +1 -1
  27. package/esm/strlen.js +38 -0
  28. package/lib/index.js +16 -0
  29. package/lib/isBankCard.js +2 -2
  30. package/lib/isBusinessLicense.js +2 -2
  31. package/lib/isChinese.js +2 -2
  32. package/lib/isEmail.js +2 -2
  33. package/lib/isHMCard.js +2 -2
  34. package/lib/isIPv4.js +2 -2
  35. package/lib/isIPv6.js +2 -2
  36. package/lib/isIdCard.js +2 -2
  37. package/lib/isMobile.js +2 -2
  38. package/lib/isPassport.js +5 -5
  39. package/lib/isPostcode.js +2 -2
  40. package/lib/isQQ.js +2 -2
  41. package/lib/isSocialCreditCode.js +2 -2
  42. package/lib/isSwiftCode.js +40 -0
  43. package/lib/isTWCard.js +2 -2
  44. package/lib/isTelephone.js +2 -2
  45. package/lib/isUrl.js +2 -2
  46. package/lib/isVehicle.js +2 -2
  47. package/lib/isWX.js +2 -2
  48. package/lib/randomString.js +1 -1
  49. package/lib/strlen.js +48 -0
  50. package/package.json +2 -1
  51. package/types/index.d.ts +2 -0
  52. package/types/isPassport.d.ts +1 -1
  53. package/types/isSwiftCode.d.ts +22 -0
  54. package/types/randomString.d.ts +1 -1
  55. package/types/strlen.d.ts +20 -0
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _normalizeString = _interopRequireDefault(require("./normalizeString"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ var reg = /^[A-Z]{6}[A-Z\d]{2}(?:[A-Z\d]{3})?$/;
13
+ /**
14
+ * 检测值是否为 Swift Code。8位或11位,前6位为大写字母,7-8位为大写字母或数字,9-11位为可选的大写字母或数字。
15
+ *
16
+ * @static
17
+ * @alias module:Validator.isSwiftCode
18
+ * @see 参考 {@link https://zh.wikipedia.org/wiki/ISO_9362|ISO 9362}
19
+ * @since 4.9.0
20
+ * @param {*} value 要检测的值
21
+ * @returns {boolean} 值是否为 Swift Code
22
+ * @example
23
+ *
24
+ * isSwiftCode('DEUTDEFF') // true
25
+ * isSwiftCode('deutdeff') // false
26
+ *
27
+ * isSwiftCode('BKTWTWTP010') // true
28
+ * isSwiftCode('010BKTWTWTP') // false
29
+ *
30
+ * isSwiftCode('ICBKCNBJBJM') // true
31
+ *
32
+ */
33
+
34
+ function isSwiftCode(value) {
35
+ var valueStr = (0, _normalizeString["default"])(value);
36
+ return reg.test(valueStr);
37
+ }
38
+
39
+ var _default = isSwiftCode;
40
+ exports["default"] = _default;
package/lib/isTWCard.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
 
8
- var _convertToString = _interopRequireDefault(require("./utils/convertToString"));
8
+ var _normalizeString = _interopRequireDefault(require("./normalizeString"));
9
9
 
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
11
 
@@ -29,7 +29,7 @@ var regTWCard = /^(\d{8}|[\da-z]{10})$/i;
29
29
  */
30
30
 
31
31
  function isTWCard(value) {
32
- var valueStr = (0, _convertToString["default"])(value);
32
+ var valueStr = (0, _normalizeString["default"])(value);
33
33
  return regTWCard.test(valueStr);
34
34
  }
35
35
 
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
 
8
- var _convertToString = _interopRequireDefault(require("./utils/convertToString"));
8
+ var _normalizeString = _interopRequireDefault(require("./normalizeString"));
9
9
 
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
11
 
@@ -36,7 +36,7 @@ var reg = /^(0\d{2,3}\-)?([2-9]\d{6,7})(\-\d{1,6})?$/;
36
36
  */
37
37
 
38
38
  function isTelephone(value) {
39
- var valueStr = (0, _convertToString["default"])(value);
39
+ var valueStr = (0, _normalizeString["default"])(value);
40
40
  return reg.test(valueStr);
41
41
  }
42
42
 
package/lib/isUrl.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
 
8
- var _convertToString = _interopRequireDefault(require("./utils/convertToString"));
8
+ var _normalizeString = _interopRequireDefault(require("./normalizeString"));
9
9
 
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
11
 
@@ -45,7 +45,7 @@ var reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:
45
45
  */
46
46
 
47
47
  function isUrl(value) {
48
- var valueStr = (0, _convertToString["default"])(value);
48
+ var valueStr = (0, _normalizeString["default"])(value);
49
49
  return reg.test(valueStr);
50
50
  }
51
51
 
package/lib/isVehicle.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
 
8
- var _convertToString = _interopRequireDefault(require("./utils/convertToString"));
8
+ var _normalizeString = _interopRequireDefault(require("./normalizeString"));
9
9
 
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
11
 
@@ -40,7 +40,7 @@ var reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕
40
40
  */
41
41
 
42
42
  function isVehicle(value) {
43
- var valueStr = (0, _convertToString["default"])(value);
43
+ var valueStr = (0, _normalizeString["default"])(value);
44
44
  return reg.test(valueStr);
45
45
  }
46
46
 
package/lib/isWX.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
 
8
- var _convertToString = _interopRequireDefault(require("./utils/convertToString"));
8
+ var _normalizeString = _interopRequireDefault(require("./normalizeString"));
9
9
 
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
11
 
@@ -30,7 +30,7 @@ var reg = /^[a-z]([-_a-z0-9]{5,19})+$/i;
30
30
  */
31
31
 
32
32
  function isWX(value) {
33
- var valueStr = (0, _convertToString["default"])(value);
33
+ var valueStr = (0, _normalizeString["default"])(value);
34
34
  return reg.test(valueStr);
35
35
  }
36
36
 
@@ -34,7 +34,7 @@ function internalRandomString() {
34
34
  * @alias module:Other.randomString
35
35
  * @since 4.8.0
36
36
  * @param {number} [len=0] 长度
37
- * @param {string} [optionalChars] 允许的字符,默认为数字和大小写字母
37
+ * @param {string} [optionalChars='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'] 允许的字符,默认为数字和大小写字母
38
38
  * @returns {string} 随机字符串
39
39
  * @example
40
40
  * randomString(5); // slk23
package/lib/strlen.js ADDED
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _normalizeString = _interopRequireDefault(require("./normalizeString"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ /**
13
+ * 获取字符长度。中文汉字占2个字符,英文占1个字符,特殊如emoji占4个字符。
14
+ *
15
+ * @static
16
+ * @alias module:Other.strlen
17
+ * @since 4.10.0
18
+ * @param {string} str 字符串
19
+ * @returns {number} 字符长度
20
+ * @example
21
+ *
22
+ * strlen('你好a'); // 5
23
+ * strlen('你好,世界!'); // 12
24
+ * strlen('严両丞丽'); // 8
25
+ * strlen('abcde'); // 5
26
+ * strlen('𠮷'); // 4
27
+ * strlen('🍎'); // 4
28
+ *
29
+ */
30
+ function strlen(str) {
31
+ var realStr = (0, _normalizeString["default"])(str);
32
+ var len = 0;
33
+
34
+ for (var i = 0; i < realStr.length; i++) {
35
+ var c = realStr.charCodeAt(i);
36
+
37
+ if (c >= 0x0001 && c <= 0x007e || 0xff60 <= c && c <= 0xff9f) {
38
+ len++;
39
+ } else {
40
+ len += 2;
41
+ }
42
+ }
43
+
44
+ return len;
45
+ }
46
+
47
+ var _default = strlen;
48
+ exports["default"] = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "util-helpers",
3
- "version": "4.8.3",
3
+ "version": "4.10.1",
4
4
  "description": "一个基于业务场景的工具方法库",
5
5
  "main": "lib/index.js",
6
6
  "module": "esm/index.js",
@@ -18,6 +18,7 @@
18
18
  "build:dist": "rm -rf dist && rollup -c",
19
19
  "build:doc": "npm run doc",
20
20
  "doc": "rm -rf docs && jsdoc -c conf.json",
21
+ "open:doc": "open ./docs/index.html",
21
22
  "prettier": "prettier --write 'src/**/*.js' && prettier --write 'test/**/*.js'",
22
23
  "lint-staged": "lint-staged",
23
24
  "lint-staged:js": "eslint --ext .js",
package/types/index.d.ts CHANGED
@@ -19,6 +19,7 @@ export { default as validatePassword } from "./validatePassword";
19
19
  export { default as isPromiseLike } from "./isPromiseLike";
20
20
  export { default as isHMCard } from "./isHMCard";
21
21
  export { default as isTWCard } from "./isTWCard";
22
+ export { default as isSwiftCode } from "./isSwiftCode";
22
23
  export { default as formatMoney } from "./formatMoney";
23
24
  export { default as formatBankCard } from "./formatBankCard";
24
25
  export { default as replaceChar } from "./replaceChar";
@@ -40,4 +41,5 @@ export { default as round } from "./round";
40
41
  export { default as waitTime } from "./waitTime";
41
42
  export { default as calculateCursorPosition } from "./calculateCursorPosition";
42
43
  export { default as randomString } from "./randomString";
44
+ export { default as strlen } from "./strlen";
43
45
  export { setDisableWarning } from "./utils/config";
@@ -1,7 +1,7 @@
1
1
  export default isPassport;
2
2
  /**
3
3
  * 检测值是否为护照号
4
- * 支持普通护照(E*)、外交护照(DE)、公务护照(SE)、公务普通护照(PE)、香港特区护照(K/KJ)、澳门特区护照(MA)
4
+ * 支持普通护照(E*)、外交护照(DE)、公务护照(SE)、公务普通护照(PE)、香港特区护照(K/KJ/H*)、澳门特区护照(MA/MB/M*),注意不区分大小写
5
5
  *
6
6
  * @static
7
7
  * @alias module:Validator.isPassport
@@ -0,0 +1,22 @@
1
+ export default isSwiftCode;
2
+ /**
3
+ * 检测值是否为 Swift Code。8位或11位,前6位为大写字母,7-8位为大写字母或数字,9-11位为可选的大写字母或数字。
4
+ *
5
+ * @static
6
+ * @alias module:Validator.isSwiftCode
7
+ * @see 参考 {@link https://zh.wikipedia.org/wiki/ISO_9362|ISO 9362}
8
+ * @since 4.9.0
9
+ * @param {*} value 要检测的值
10
+ * @returns {boolean} 值是否为 Swift Code
11
+ * @example
12
+ *
13
+ * isSwiftCode('DEUTDEFF') // true
14
+ * isSwiftCode('deutdeff') // false
15
+ *
16
+ * isSwiftCode('BKTWTWTP010') // true
17
+ * isSwiftCode('010BKTWTWTP') // false
18
+ *
19
+ * isSwiftCode('ICBKCNBJBJM') // true
20
+ *
21
+ */
22
+ declare function isSwiftCode(value: any): boolean;
@@ -6,7 +6,7 @@ export default randomString;
6
6
  * @alias module:Other.randomString
7
7
  * @since 4.8.0
8
8
  * @param {number} [len=0] 长度
9
- * @param {string} [optionalChars] 允许的字符,默认为数字和大小写字母
9
+ * @param {string} [optionalChars='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'] 允许的字符,默认为数字和大小写字母
10
10
  * @returns {string} 随机字符串
11
11
  * @example
12
12
  * randomString(5); // slk23
@@ -0,0 +1,20 @@
1
+ export default strlen;
2
+ /**
3
+ * 获取字符长度。中文汉字占2个字符,英文占1个字符,特殊如emoji占4个字符。
4
+ *
5
+ * @static
6
+ * @alias module:Other.strlen
7
+ * @since 4.10.0
8
+ * @param {string} str 字符串
9
+ * @returns {number} 字符长度
10
+ * @example
11
+ *
12
+ * strlen('你好a'); // 5
13
+ * strlen('你好,世界!'); // 12
14
+ * strlen('严両丞丽'); // 8
15
+ * strlen('abcde'); // 5
16
+ * strlen('𠮷'); // 4
17
+ * strlen('🍎'); // 4
18
+ *
19
+ */
20
+ declare function strlen(str: string): number;