@ivujs/i-utils 1.1.18 → 2.0.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.
Files changed (204) hide show
  1. package/README.md +96 -30
  2. package/dist/cjs/ID-card/index.cjs +87 -0
  3. package/dist/cjs/array/index.cjs +470 -0
  4. package/dist/cjs/clipboard/index.cjs +128 -0
  5. package/dist/cjs/color/index.cjs +193 -0
  6. package/dist/cjs/constants/date.cjs +178 -0
  7. package/dist/cjs/constants/id-card.cjs +52 -0
  8. package/dist/cjs/constants/keycode.cjs +117 -0
  9. package/dist/cjs/constants/lang.cjs +13 -0
  10. package/dist/cjs/constants/math.cjs +13 -0
  11. package/dist/cjs/constants/regexp.cjs +53 -0
  12. package/dist/cjs/constants/sort.cjs +15 -0
  13. package/dist/cjs/cookie/index.cjs +70 -0
  14. package/dist/cjs/crypto/aes/aes.cjs +480 -0
  15. package/dist/cjs/crypto/aes/index.cjs +27 -0
  16. package/dist/cjs/crypto/base32/base32.cjs +357 -0
  17. package/dist/cjs/crypto/base32/index.cjs +41 -0
  18. package/dist/cjs/crypto/base64/base64.cjs +348 -0
  19. package/dist/cjs/crypto/base64/index.cjs +59 -0
  20. package/dist/cjs/crypto/des/des.cjs +257 -0
  21. package/dist/cjs/crypto/des/index.cjs +28 -0
  22. package/dist/cjs/crypto/md5/index.cjs +24 -0
  23. package/dist/cjs/crypto/md5/md5.cjs +897 -0
  24. package/dist/cjs/crypto/sha/sha1/index.cjs +24 -0
  25. package/dist/cjs/crypto/sha/sha1/sha1.cjs +529 -0
  26. package/dist/cjs/crypto/sha/sha256/index.cjs +43 -0
  27. package/dist/cjs/crypto/sha/sha256/sha256.cjs +595 -0
  28. package/dist/cjs/crypto/sha/sha3/index.cjs +41 -0
  29. package/dist/cjs/crypto/sha/sha3/sha3.cjs +624 -0
  30. package/dist/cjs/crypto/sha/sha512/index.cjs +81 -0
  31. package/dist/cjs/crypto/sha/sha512/sha512.cjs +950 -0
  32. package/dist/cjs/crypto/sm/lib/asn1.cjs +149 -0
  33. package/dist/cjs/crypto/sm/lib/ec.cjs +315 -0
  34. package/dist/cjs/crypto/sm/lib/jsbn.cjs +1608 -0
  35. package/dist/cjs/crypto/sm/lib/sm3.cjs +158 -0
  36. package/dist/cjs/crypto/sm/lib/utils.cjs +170 -0
  37. package/dist/cjs/crypto/sm/sm2/index.cjs +112 -0
  38. package/dist/cjs/crypto/sm/sm2/sm2.cjs +231 -0
  39. package/dist/cjs/crypto/sm/sm3/index.cjs +15 -0
  40. package/dist/cjs/crypto/sm/sm3/sm3.cjs +93 -0
  41. package/dist/cjs/crypto/sm/sm4/index.cjs +27 -0
  42. package/dist/cjs/crypto/sm/sm4/sm4.cjs +327 -0
  43. package/dist/cjs/crypto/tea/index.cjs +25 -0
  44. package/dist/cjs/crypto/tea/tea.cjs +187 -0
  45. package/dist/cjs/date/index.cjs +1266 -0
  46. package/dist/cjs/desensitized/index.cjs +75 -0
  47. package/dist/cjs/device/index.cjs +151 -0
  48. package/dist/cjs/dom/index.cjs +129 -0
  49. package/dist/cjs/file/index.cjs +333 -0
  50. package/dist/cjs/function/index.cjs +69 -0
  51. package/dist/cjs/index.cjs +402 -7
  52. package/dist/cjs/keycode/index.cjs +33 -0
  53. package/dist/cjs/math/index.cjs +278 -0
  54. package/dist/cjs/number/index.cjs +31 -0
  55. package/dist/cjs/object/index.cjs +272 -0
  56. package/dist/cjs/pagination/index.cjs +131 -0
  57. package/dist/cjs/random/index.cjs +24 -0
  58. package/dist/cjs/regexp/index.cjs +100 -0
  59. package/dist/cjs/storage/index.cjs +11 -0
  60. package/dist/cjs/storage/localStorage.cjs +37 -0
  61. package/dist/cjs/storage/sessionStorage.cjs +37 -0
  62. package/dist/cjs/string/index.cjs +358 -0
  63. package/dist/cjs/url/index.cjs +258 -0
  64. package/dist/cjs/validate/index.cjs +468 -0
  65. package/dist/cjs/weapp/index.cjs +142 -0
  66. package/dist/es/ID-card/index.d.ts +31 -0
  67. package/dist/es/ID-card/index.mjs +81 -0
  68. package/dist/es/array/index.d.ts +203 -0
  69. package/dist/es/array/index.mjs +441 -0
  70. package/dist/es/clipboard/index.d.ts +29 -0
  71. package/dist/es/clipboard/index.mjs +122 -0
  72. package/dist/es/color/index.d.ts +52 -0
  73. package/dist/es/color/index.mjs +183 -0
  74. package/dist/es/constants/date.d.ts +174 -0
  75. package/dist/es/constants/date.mjs +176 -0
  76. package/dist/es/constants/id-card.d.ts +43 -0
  77. package/dist/es/constants/id-card.mjs +50 -0
  78. package/dist/es/constants/index.d.ts +7 -0
  79. package/dist/es/constants/keycode.d.ts +103 -0
  80. package/dist/es/constants/keycode.mjs +115 -0
  81. package/dist/es/constants/lang.d.ts +4 -0
  82. package/dist/es/constants/lang.mjs +11 -0
  83. package/dist/es/constants/math.d.ts +4 -0
  84. package/dist/es/constants/math.mjs +11 -0
  85. package/dist/es/constants/regexp.d.ts +24 -0
  86. package/dist/es/constants/regexp.mjs +51 -0
  87. package/dist/es/constants/sort.d.ts +5 -0
  88. package/dist/es/constants/sort.mjs +13 -0
  89. package/dist/es/cookie/index.d.ts +29 -0
  90. package/dist/es/cookie/index.mjs +64 -0
  91. package/dist/es/crypto/aes/aes.d.ts +156 -0
  92. package/dist/es/crypto/aes/aes.mjs +478 -0
  93. package/dist/es/crypto/aes/index.d.ts +16 -0
  94. package/dist/es/crypto/aes/index.mjs +24 -0
  95. package/dist/es/crypto/base32/base32.d.ts +3 -0
  96. package/dist/es/crypto/base32/base32.mjs +353 -0
  97. package/dist/es/crypto/base32/index.d.ts +24 -0
  98. package/dist/es/crypto/base32/index.mjs +36 -0
  99. package/dist/es/crypto/base64/base64.d.ts +5 -0
  100. package/dist/es/crypto/base64/base64.mjs +342 -0
  101. package/dist/es/crypto/base64/index.d.ts +36 -0
  102. package/dist/es/crypto/base64/index.mjs +52 -0
  103. package/dist/es/crypto/des/des.d.ts +52 -0
  104. package/dist/es/crypto/des/des.mjs +255 -0
  105. package/dist/es/crypto/des/index.d.ts +14 -0
  106. package/dist/es/crypto/des/index.mjs +25 -0
  107. package/dist/es/crypto/index.d.ts +8 -0
  108. package/dist/es/crypto/md5/index.d.ts +13 -0
  109. package/dist/es/crypto/md5/index.mjs +21 -0
  110. package/dist/es/crypto/md5/md5.d.ts +144 -0
  111. package/dist/es/crypto/md5/md5.mjs +894 -0
  112. package/dist/es/crypto/sha/index.d.ts +4 -0
  113. package/dist/es/crypto/sha/sha1/index.d.ts +13 -0
  114. package/dist/es/crypto/sha/sha1/index.mjs +21 -0
  115. package/dist/es/crypto/sha/sha1/sha1.d.ts +2 -0
  116. package/dist/es/crypto/sha/sha1/sha1.mjs +526 -0
  117. package/dist/es/crypto/sha/sha256/index.d.ts +26 -0
  118. package/dist/es/crypto/sha/sha256/index.mjs +38 -0
  119. package/dist/es/crypto/sha/sha256/sha256.d.ts +4 -0
  120. package/dist/es/crypto/sha/sha256/sha256.mjs +590 -0
  121. package/dist/es/crypto/sha/sha3/index.d.ts +24 -0
  122. package/dist/es/crypto/sha/sha3/index.mjs +36 -0
  123. package/dist/es/crypto/sha/sha3/sha3.d.ts +4 -0
  124. package/dist/es/crypto/sha/sha3/sha3.mjs +619 -0
  125. package/dist/es/crypto/sha/sha512/index.d.ts +52 -0
  126. package/dist/es/crypto/sha/sha512/index.mjs +72 -0
  127. package/dist/es/crypto/sha/sha512/sha512.d.ts +8 -0
  128. package/dist/es/crypto/sha/sha512/sha512.mjs +941 -0
  129. package/dist/es/crypto/sm/index.d.ts +3 -0
  130. package/dist/es/crypto/sm/lib/asn1.d.ts +12 -0
  131. package/dist/es/crypto/sm/lib/asn1.mjs +146 -0
  132. package/dist/es/crypto/sm/lib/ec.d.ts +126 -0
  133. package/dist/es/crypto/sm/lib/ec.mjs +312 -0
  134. package/dist/es/crypto/sm/lib/jsbn.d.ts +198 -0
  135. package/dist/es/crypto/sm/lib/jsbn.mjs +1605 -0
  136. package/dist/es/crypto/sm/lib/sm3.d.ts +5 -0
  137. package/dist/es/crypto/sm/lib/sm3.mjs +155 -0
  138. package/dist/es/crypto/sm/lib/utils.d.ts +53 -0
  139. package/dist/es/crypto/sm/lib/utils.mjs +158 -0
  140. package/dist/es/crypto/sm/sm2/index.d.ts +71 -0
  141. package/dist/es/crypto/sm/sm2/index.mjs +101 -0
  142. package/dist/es/crypto/sm/sm2/sm2.d.ts +34 -0
  143. package/dist/es/crypto/sm/sm2/sm2.mjs +220 -0
  144. package/dist/es/crypto/sm/sm3/index.d.ts +7 -0
  145. package/dist/es/crypto/sm/sm3/index.mjs +13 -0
  146. package/dist/es/crypto/sm/sm3/sm3.d.ts +1 -0
  147. package/dist/es/crypto/sm/sm3/sm3.mjs +91 -0
  148. package/dist/es/crypto/sm/sm4/index.d.ts +16 -0
  149. package/dist/es/crypto/sm/sm4/index.mjs +24 -0
  150. package/dist/es/crypto/sm/sm4/sm4.d.ts +2 -0
  151. package/dist/es/crypto/sm/sm4/sm4.mjs +324 -0
  152. package/dist/es/crypto/tea/index.d.ts +14 -0
  153. package/dist/es/crypto/tea/index.mjs +22 -0
  154. package/dist/es/crypto/tea/tea.d.ts +69 -0
  155. package/dist/es/crypto/tea/tea.mjs +185 -0
  156. package/dist/es/date/index.d.ts +547 -0
  157. package/dist/es/date/index.mjs +1179 -0
  158. package/dist/es/desensitized/index.d.ts +38 -0
  159. package/dist/es/desensitized/index.mjs +69 -0
  160. package/dist/es/device/index.d.ts +67 -0
  161. package/dist/es/device/index.mjs +137 -0
  162. package/dist/es/dom/index.d.ts +57 -0
  163. package/dist/es/dom/index.mjs +119 -0
  164. package/dist/es/file/index.d.ts +93 -0
  165. package/dist/es/file/index.mjs +317 -0
  166. package/dist/es/function/index.d.ts +23 -0
  167. package/dist/es/function/index.mjs +65 -0
  168. package/dist/es/index.d.ts +26 -1
  169. package/dist/es/index.mjs +57 -4
  170. package/dist/es/keycode/index.d.ts +12 -0
  171. package/dist/es/keycode/index.mjs +30 -0
  172. package/dist/es/math/index.d.ts +66 -0
  173. package/dist/es/math/index.mjs +268 -0
  174. package/dist/es/number/index.d.ts +14 -0
  175. package/dist/es/number/index.mjs +28 -0
  176. package/dist/es/object/index.d.ts +83 -0
  177. package/dist/es/object/index.mjs +259 -0
  178. package/dist/es/pagination/index.d.ts +34 -0
  179. package/dist/es/pagination/index.mjs +125 -0
  180. package/dist/es/random/index.d.ts +15 -0
  181. package/dist/es/random/index.mjs +21 -0
  182. package/dist/es/regexp/index.d.ts +63 -0
  183. package/dist/es/regexp/index.mjs +89 -0
  184. package/dist/es/storage/index.d.ts +7 -0
  185. package/dist/es/storage/index.mjs +9 -0
  186. package/dist/es/storage/localStorage.d.ts +21 -0
  187. package/dist/es/storage/localStorage.mjs +32 -0
  188. package/dist/es/storage/sessionStorage.d.ts +21 -0
  189. package/dist/es/storage/sessionStorage.mjs +32 -0
  190. package/dist/es/string/index.d.ts +121 -0
  191. package/dist/es/string/index.mjs +339 -0
  192. package/dist/es/url/index.d.ts +118 -0
  193. package/dist/es/url/index.mjs +240 -0
  194. package/dist/es/validate/index.d.ts +228 -0
  195. package/dist/es/validate/index.mjs +431 -0
  196. package/dist/es/weapp/index.d.ts +57 -0
  197. package/dist/es/weapp/index.mjs +131 -0
  198. package/dist/index.d.ts +2857 -17
  199. package/dist/lib/index.full.umd.js +14238 -31
  200. package/dist/lib/index.full.umd.min.js +64 -2
  201. package/dist/lib/index.full.umd.min.js.map +1 -1
  202. package/dist/resolver/auto-imports.cjs +337 -1
  203. package/dist/resolver/auto-imports.mjs +337 -1
  204. package/package.json +90 -87
package/README.md CHANGED
@@ -3,11 +3,10 @@
3
3
  [![npm version](https://img.shields.io/npm/v/xe-utils.svg?style=flat-square)](https://github.com/qq575792372/i-utils)
4
4
  [![npm license](https://img.shields.io/github/license/mashape/apistatus.svg)](LICENSE)
5
5
 
6
- 🔥 **i-utils** 🔥是一款功能强大、高效的一站式前端模块化 **JavaScript** 工具库,支持`Typescript`导入,
6
+ 🔥 **i-utils** 🔥是一款功能强大、高效的一站式前端模块化 **JavaScript** 工具库,支持 `Typescript` 导入,
7
7
  其集成了众多日常开发中用到的方法,覆盖`字符串`,`数组`,`数学`,`文件`,`数学`,`文件`,`加解密算法`,`脱敏`,`分页`,
8
8
  `浏览器 Cookie`,`浏览器 Clipboard`,`浏览器 Dom`,`微信小程序工具`等多个模块,同时支持`es模块化`、`umd浏览器环境`、
9
- `require服务端环境`
10
- ,满足不同场景的开发需求,大幅提升开发效率。
9
+ `require服务端环境`,满足不同场景的开发需求,大幅提升开发效率。
11
10
 
12
11
  ### 📦 安装
13
12
 
@@ -24,48 +23,116 @@ yarn add @ivu-plus/i-utils --save
24
23
 
25
24
  ### 🎨 使用
26
25
 
27
- #### es 模块
26
+ #### es 模块环境
28
27
 
29
28
  ```javascript
30
29
  // 按需引入
31
- import { loadedTestUtils } from "@ivu-plus/i-utils";
30
+ import { testLoaded } from "@ivu-plus/i-utils";
32
31
 
33
- loadedTestUtils();
32
+ testLoaded();
34
33
 
35
- // 全部引入
34
+ // 全量引入
36
35
  import * as iUtils from "@ivu-plus/i-utils";
37
36
 
38
- iUtils.loadedTestUtils();
37
+ iUtils.testLoaded();
39
38
  ```
40
39
 
41
- #### require 服务端环境
40
+ #### commonjs 服务端环境
42
41
 
43
42
  ```javascript
44
- // 全部引入
43
+ // 全量引入
45
44
  const iUtils = require("@ivu-plus/i-utils");
46
- iUtils.loadedTestUtils();
45
+ iUtils.testLoaded();
47
46
 
48
47
  // 按需引入
49
- const { loadedTestUtils } = require("@ivu-plus/i-utils");
50
- loadedTestUtils();
48
+ const { testLoaded } = require("@ivu-plus/i-utils");
49
+ testLoaded();
51
50
  ```
52
51
 
53
52
  #### umd 浏览器环境
54
53
 
55
- ```javascript
56
- <!-- 将工具库下面 dist/lib/index.full.umd.js 文件拷贝出来引入 -->
57
- <script src="dist/lib/index.full.umd.js"></script>;
58
- <!-- 这里使用的实际是全局的 window.iUtils 对象 -->
54
+ 直接使用打包好的 `umd` 的包,提供常规包和 `min` 压缩包
55
+
56
+ ```html
57
+ <!-- <script src="dist/lib/index.full.umd.js"></script> -->
58
+ <script src="dist/lib/index.full.umd.min.js"></script>
59
+
60
+ <!-- 这里使用的实际是绑定到全局的 window.iUtils 对象 -->
59
61
  <script>
60
- iUtils.loadedTestUtils();
61
- </script>;
62
+ iUtils.testLoaded();
63
+ </script>
64
+ ```
65
+
66
+ 还有一种是浏览器中使用 `ESM` 模块引入方式
67
+
68
+ ```html
69
+ <script type="module" src="dist/es/index.mjs">
70
+ iUtils.testLoaded();
71
+ </script>
62
72
  ```
63
73
 
64
74
  #### 自动导入
65
- 工具库采用unplugin-auto-import开发解析器支持自动导入,
75
+
76
+ 需要使用额外的插件来实现自动导入,`IUtilsResolver`解析器支持 `Vite` 和 `Webpack` 工具。
77
+
78
+ 首先需要安装自动导入插件
79
+
80
+ ```bash
81
+ pnpm install unplugin-auto-import -D
82
+
83
+ ```
84
+
85
+ 在 `vite.config.ts` 中使用
86
+
87
+ ```javascript
88
+ import { defineConfig } from "vite";
89
+ import AutoImport from "unplugin-auto-import/vite";
90
+ import { IUtilsResolver } from "@ivu-plus/i-utils/resolver";
91
+
92
+ export default defineConfig({
93
+ plugins: [
94
+ AutoImport({
95
+ resolvers: [IUtilsResolver()],
96
+ }),
97
+ ],
98
+ });
99
+ ```
100
+
101
+ 在 `webpack.config.js` 中使用
102
+
103
+ ```javascript
104
+ const AutoImport = require("unplugin-auto-import/webpack");
105
+ const { ElementPlusResolver } = require("@ivu-plus/i-utils/resolver");
106
+
107
+ module.exports = {
108
+ plugins: [
109
+ AutoImport({
110
+ resolvers: [ElementPlusResolver()],
111
+ }),
112
+ ],
113
+ };
114
+ ```
115
+
116
+ 解析器提供 3 种场景
117
+
118
+ ```javascript
119
+ // 场景1:默认加载所有方法
120
+ IUtilsResolver();
121
+
122
+ // 场景2:追加指定方法名
123
+ IUtilsResolver(["getDate"]);
124
+
125
+ // 场景3:精细化控制(排除/只包含/追加)
126
+ IUtilsResolver({
127
+ include: ["getUUID", "getGUID"],
128
+ exclude: ["testLoaded"],
129
+ append: ["formatDate"],
130
+ });
131
+ ```
132
+
66
133
  ### 🔨 构建
67
134
 
68
- 工具库源码架构使用 `pnpm` 做为包管理工具,打包后生成`esm`、`umd`、`cjs`包。
135
+ 工具库源码架构使用 `pnpm` 做为包管理工具,支持 `Typescript` 类型导入,打包后生成`es`、`cjs`、`umd`包。
69
136
 
70
137
  ```bash
71
138
  # 构建包
@@ -75,7 +142,7 @@ pnpm build
75
142
  ### ✅ 发布
76
143
 
77
144
  ```bash
78
- pnpm publish
145
+ npm publish
79
146
  ```
80
147
 
81
148
  ### 📝API 文档
@@ -83,11 +150,11 @@ pnpm publish
83
150
  [常量集合 Constant](https://github.com/qq575792372/i-utils/blob/main/doc/constants.md)
84
151
 
85
152
  [字符串](https://github.com/qq575792372/i-utils/blob/main/doc/string.md)
86
- [数字](https://github.com/qq575792372/i-utils/blob/main/doc/number.md)
87
- [数组](https://github.com/qq575792372/i-utils/blob/main/doc/array.md)
88
- [对象](https://github.com/qq575792372/i-utils/blob/main/doc/object.md)
89
- [函数](https://github.com/qq575792372/i-utils/blob/main/doc/function.md)
90
- [日期](https://github.com/qq575792372/i-utils/blob/main/doc/date.md)
153
+ [数字](https://github.com/qq575792372/i-utils/blob/main/doc/number.md)
154
+ [数组](https://github.com/qq575792372/i-utils/blob/main/doc/array.md)
155
+ [对象](https://github.com/qq575792372/i-utils/blob/main/doc/object.md)
156
+ [函数](https://github.com/qq575792372/i-utils/blob/main/doc/function.md)
157
+ [日期](https://github.com/qq575792372/i-utils/blob/main/doc/date.md)
91
158
  [数学](https://github.com/qq575792372/i-utils/blob/main/doc/math.md)
92
159
  [正则](https://github.com/qq575792372/i-utils/blob/main/doc/regexp.md)
93
160
  [随机数](https://github.com/qq575792372/i-utils/blob/main/doc/random.md)
@@ -104,8 +171,8 @@ pnpm publish
104
171
  [分页](https://github.com/qq575792372/i-utils/blob/main/pagination/net.md)
105
172
 
106
173
  [浏览器 Url](https://github.com/qq575792372/i-utils/blob/main/doc/browser-url.md)
107
- [浏览器 Cookie](https://github.com/qq575792372/i-utils/blob/main/doc/browser-storage.md)
108
- [浏览器 Storage](https://github.com/qq575792372/i-utils/blob/main/doc/browser-cookie.md)
174
+ [浏览器 Cookie](https://github.com/qq575792372/i-utils/blob/main/doc/browser-storage.md)
175
+ [浏览器 Storage](https://github.com/qq575792372/i-utils/blob/main/doc/browser-cookie.md)
109
176
  [浏览器 Dom](https://github.com/qq575792372/i-utils/blob/main/doc/browser-dom.md)
110
177
  [浏览器 Device](https://github.com/qq575792372/i-utils/blob/main/doc/browser-device.md)
111
178
  [浏览器 Clipboard](https://github.com/qq575792372/i-utils/blob/main/doc/browser-clipboard.md)
@@ -146,4 +213,3 @@ git commit -m 'fix: 修复了xxx问题'
146
213
  git commit -m 'fix(string): 修复了string工具类的xxx问题'
147
214
  git commit -m 'docs: 更新了字符串模块文档'
148
215
  ```
149
-
@@ -0,0 +1,87 @@
1
+ 'use strict';
2
+
3
+ var index = require('../validate/index.cjs');
4
+ var index$1 = require('../date/index.cjs');
5
+ var idCard = require('../constants/id-card.cjs');
6
+
7
+ /**
8
+ * 根据身份证号码获取信息
9
+ * @description 能获取到 籍贯,出生日期,年龄,性别
10
+ * @param {String} idCard 身份证号码,支持一代15位和二代18位
11
+ * @returns {Object} 返回身份证信息对象
12
+ */
13
+ function getInfoByIDCard(idCard) {
14
+ if (index.isNull(idCard))
15
+ return;
16
+ return {
17
+ // 省份
18
+ province: getProvinceByIDCard(idCard),
19
+ // 生日
20
+ birthday: getBirthdayByIDCard(idCard),
21
+ // 年龄
22
+ age: getAgeByIDCard(idCard),
23
+ // 性别
24
+ sex: getSexByIDCard(idCard),
25
+ };
26
+ }
27
+ /**
28
+ * 根据身份证号码获得生日
29
+ * @param {String} idCard 身份证号码,支持一代15位和二代18位
30
+ * @returns {String} 返回生日
31
+ */
32
+ function getBirthdayByIDCard(idCard) {
33
+ if (index.isNull(idCard))
34
+ return;
35
+ // 15位身份证
36
+ if (idCard.length === 15) {
37
+ return "19" + idCard.substring(6, 8) + "-" + idCard.substring(8, 10) + "-" + idCard.substring(10, 12);
38
+ }
39
+ // 18位身份证
40
+ if (idCard.length === 18) {
41
+ return idCard.substring(6, 10) + "-" + idCard.substring(10, 12) + "-" + idCard.substring(12, 14);
42
+ }
43
+ }
44
+ /**
45
+ * 根据身份证号码获得年龄
46
+ * @param {String} idCard 身份证号码,支持一代15位和二代18位
47
+ * @returns {Number} 返回年龄
48
+ */
49
+ function getAgeByIDCard(idCard) {
50
+ if (index.isNull(idCard))
51
+ return;
52
+ let birthday = getBirthdayByIDCard(idCard);
53
+ return index$1.getAge(index$1.parseDate(birthday));
54
+ }
55
+ /**
56
+ * 根据身份证号码获得性别
57
+ * @param {String} idCard 身份证号码,支持一代15位和二代18位
58
+ * @returns {String} 返回性别
59
+ */
60
+ function getSexByIDCard(idCard$1) {
61
+ if (index.isNull(idCard$1))
62
+ return;
63
+ // 15位身份证
64
+ if (idCard$1.length === 15) {
65
+ return Number(idCard$1.substring(14)) % 2 === 0 ? idCard.ID_CARD.SEX.WOMAN : idCard.ID_CARD.SEX.MAN;
66
+ }
67
+ // 18位身份证
68
+ if (idCard$1.length === 18) {
69
+ return Number(idCard$1.substring(16, 17)) % 2 === 0 ? idCard.ID_CARD.SEX.WOMAN : idCard.ID_CARD.SEX.MAN;
70
+ }
71
+ }
72
+ /**
73
+ * 根据身份证号码获得省份
74
+ * @param {String} idCard 身份证号码,支持一代15位和二代18位
75
+ * @returns {String} 返回省份
76
+ */
77
+ function getProvinceByIDCard(idCard$1) {
78
+ if (index.isNull(idCard$1))
79
+ return;
80
+ return idCard.ID_CARD.PROVINCE[idCard$1.substring(0, 2)];
81
+ }
82
+
83
+ exports.getAgeByIDCard = getAgeByIDCard;
84
+ exports.getBirthdayByIDCard = getBirthdayByIDCard;
85
+ exports.getInfoByIDCard = getInfoByIDCard;
86
+ exports.getProvinceByIDCard = getProvinceByIDCard;
87
+ exports.getSexByIDCard = getSexByIDCard;