@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.
- package/README.md +96 -30
- package/dist/cjs/ID-card/index.cjs +87 -0
- package/dist/cjs/array/index.cjs +470 -0
- package/dist/cjs/clipboard/index.cjs +128 -0
- package/dist/cjs/color/index.cjs +193 -0
- package/dist/cjs/constants/date.cjs +178 -0
- package/dist/cjs/constants/id-card.cjs +52 -0
- package/dist/cjs/constants/keycode.cjs +117 -0
- package/dist/cjs/constants/lang.cjs +13 -0
- package/dist/cjs/constants/math.cjs +13 -0
- package/dist/cjs/constants/regexp.cjs +53 -0
- package/dist/cjs/constants/sort.cjs +15 -0
- package/dist/cjs/cookie/index.cjs +70 -0
- package/dist/cjs/crypto/aes/aes.cjs +480 -0
- package/dist/cjs/crypto/aes/index.cjs +27 -0
- package/dist/cjs/crypto/base32/base32.cjs +357 -0
- package/dist/cjs/crypto/base32/index.cjs +41 -0
- package/dist/cjs/crypto/base64/base64.cjs +348 -0
- package/dist/cjs/crypto/base64/index.cjs +59 -0
- package/dist/cjs/crypto/des/des.cjs +257 -0
- package/dist/cjs/crypto/des/index.cjs +28 -0
- package/dist/cjs/crypto/md5/index.cjs +24 -0
- package/dist/cjs/crypto/md5/md5.cjs +897 -0
- package/dist/cjs/crypto/sha/sha1/index.cjs +24 -0
- package/dist/cjs/crypto/sha/sha1/sha1.cjs +529 -0
- package/dist/cjs/crypto/sha/sha256/index.cjs +43 -0
- package/dist/cjs/crypto/sha/sha256/sha256.cjs +595 -0
- package/dist/cjs/crypto/sha/sha3/index.cjs +41 -0
- package/dist/cjs/crypto/sha/sha3/sha3.cjs +624 -0
- package/dist/cjs/crypto/sha/sha512/index.cjs +81 -0
- package/dist/cjs/crypto/sha/sha512/sha512.cjs +950 -0
- package/dist/cjs/crypto/sm/lib/asn1.cjs +149 -0
- package/dist/cjs/crypto/sm/lib/ec.cjs +315 -0
- package/dist/cjs/crypto/sm/lib/jsbn.cjs +1608 -0
- package/dist/cjs/crypto/sm/lib/sm3.cjs +158 -0
- package/dist/cjs/crypto/sm/lib/utils.cjs +170 -0
- package/dist/cjs/crypto/sm/sm2/index.cjs +112 -0
- package/dist/cjs/crypto/sm/sm2/sm2.cjs +231 -0
- package/dist/cjs/crypto/sm/sm3/index.cjs +15 -0
- package/dist/cjs/crypto/sm/sm3/sm3.cjs +93 -0
- package/dist/cjs/crypto/sm/sm4/index.cjs +27 -0
- package/dist/cjs/crypto/sm/sm4/sm4.cjs +327 -0
- package/dist/cjs/crypto/tea/index.cjs +25 -0
- package/dist/cjs/crypto/tea/tea.cjs +187 -0
- package/dist/cjs/date/index.cjs +1266 -0
- package/dist/cjs/desensitized/index.cjs +75 -0
- package/dist/cjs/device/index.cjs +151 -0
- package/dist/cjs/dom/index.cjs +129 -0
- package/dist/cjs/file/index.cjs +333 -0
- package/dist/cjs/function/index.cjs +69 -0
- package/dist/cjs/index.cjs +402 -7
- package/dist/cjs/keycode/index.cjs +33 -0
- package/dist/cjs/math/index.cjs +278 -0
- package/dist/cjs/number/index.cjs +31 -0
- package/dist/cjs/object/index.cjs +272 -0
- package/dist/cjs/pagination/index.cjs +131 -0
- package/dist/cjs/random/index.cjs +24 -0
- package/dist/cjs/regexp/index.cjs +100 -0
- package/dist/cjs/storage/index.cjs +11 -0
- package/dist/cjs/storage/localStorage.cjs +37 -0
- package/dist/cjs/storage/sessionStorage.cjs +37 -0
- package/dist/cjs/string/index.cjs +358 -0
- package/dist/cjs/url/index.cjs +258 -0
- package/dist/cjs/validate/index.cjs +468 -0
- package/dist/cjs/weapp/index.cjs +142 -0
- package/dist/es/ID-card/index.d.ts +31 -0
- package/dist/es/ID-card/index.mjs +81 -0
- package/dist/es/array/index.d.ts +203 -0
- package/dist/es/array/index.mjs +441 -0
- package/dist/es/clipboard/index.d.ts +29 -0
- package/dist/es/clipboard/index.mjs +122 -0
- package/dist/es/color/index.d.ts +52 -0
- package/dist/es/color/index.mjs +183 -0
- package/dist/es/constants/date.d.ts +174 -0
- package/dist/es/constants/date.mjs +176 -0
- package/dist/es/constants/id-card.d.ts +43 -0
- package/dist/es/constants/id-card.mjs +50 -0
- package/dist/es/constants/index.d.ts +7 -0
- package/dist/es/constants/keycode.d.ts +103 -0
- package/dist/es/constants/keycode.mjs +115 -0
- package/dist/es/constants/lang.d.ts +4 -0
- package/dist/es/constants/lang.mjs +11 -0
- package/dist/es/constants/math.d.ts +4 -0
- package/dist/es/constants/math.mjs +11 -0
- package/dist/es/constants/regexp.d.ts +24 -0
- package/dist/es/constants/regexp.mjs +51 -0
- package/dist/es/constants/sort.d.ts +5 -0
- package/dist/es/constants/sort.mjs +13 -0
- package/dist/es/cookie/index.d.ts +29 -0
- package/dist/es/cookie/index.mjs +64 -0
- package/dist/es/crypto/aes/aes.d.ts +156 -0
- package/dist/es/crypto/aes/aes.mjs +478 -0
- package/dist/es/crypto/aes/index.d.ts +16 -0
- package/dist/es/crypto/aes/index.mjs +24 -0
- package/dist/es/crypto/base32/base32.d.ts +3 -0
- package/dist/es/crypto/base32/base32.mjs +353 -0
- package/dist/es/crypto/base32/index.d.ts +24 -0
- package/dist/es/crypto/base32/index.mjs +36 -0
- package/dist/es/crypto/base64/base64.d.ts +5 -0
- package/dist/es/crypto/base64/base64.mjs +342 -0
- package/dist/es/crypto/base64/index.d.ts +36 -0
- package/dist/es/crypto/base64/index.mjs +52 -0
- package/dist/es/crypto/des/des.d.ts +52 -0
- package/dist/es/crypto/des/des.mjs +255 -0
- package/dist/es/crypto/des/index.d.ts +14 -0
- package/dist/es/crypto/des/index.mjs +25 -0
- package/dist/es/crypto/index.d.ts +8 -0
- package/dist/es/crypto/md5/index.d.ts +13 -0
- package/dist/es/crypto/md5/index.mjs +21 -0
- package/dist/es/crypto/md5/md5.d.ts +144 -0
- package/dist/es/crypto/md5/md5.mjs +894 -0
- package/dist/es/crypto/sha/index.d.ts +4 -0
- package/dist/es/crypto/sha/sha1/index.d.ts +13 -0
- package/dist/es/crypto/sha/sha1/index.mjs +21 -0
- package/dist/es/crypto/sha/sha1/sha1.d.ts +2 -0
- package/dist/es/crypto/sha/sha1/sha1.mjs +526 -0
- package/dist/es/crypto/sha/sha256/index.d.ts +26 -0
- package/dist/es/crypto/sha/sha256/index.mjs +38 -0
- package/dist/es/crypto/sha/sha256/sha256.d.ts +4 -0
- package/dist/es/crypto/sha/sha256/sha256.mjs +590 -0
- package/dist/es/crypto/sha/sha3/index.d.ts +24 -0
- package/dist/es/crypto/sha/sha3/index.mjs +36 -0
- package/dist/es/crypto/sha/sha3/sha3.d.ts +4 -0
- package/dist/es/crypto/sha/sha3/sha3.mjs +619 -0
- package/dist/es/crypto/sha/sha512/index.d.ts +52 -0
- package/dist/es/crypto/sha/sha512/index.mjs +72 -0
- package/dist/es/crypto/sha/sha512/sha512.d.ts +8 -0
- package/dist/es/crypto/sha/sha512/sha512.mjs +941 -0
- package/dist/es/crypto/sm/index.d.ts +3 -0
- package/dist/es/crypto/sm/lib/asn1.d.ts +12 -0
- package/dist/es/crypto/sm/lib/asn1.mjs +146 -0
- package/dist/es/crypto/sm/lib/ec.d.ts +126 -0
- package/dist/es/crypto/sm/lib/ec.mjs +312 -0
- package/dist/es/crypto/sm/lib/jsbn.d.ts +198 -0
- package/dist/es/crypto/sm/lib/jsbn.mjs +1605 -0
- package/dist/es/crypto/sm/lib/sm3.d.ts +5 -0
- package/dist/es/crypto/sm/lib/sm3.mjs +155 -0
- package/dist/es/crypto/sm/lib/utils.d.ts +53 -0
- package/dist/es/crypto/sm/lib/utils.mjs +158 -0
- package/dist/es/crypto/sm/sm2/index.d.ts +71 -0
- package/dist/es/crypto/sm/sm2/index.mjs +101 -0
- package/dist/es/crypto/sm/sm2/sm2.d.ts +34 -0
- package/dist/es/crypto/sm/sm2/sm2.mjs +220 -0
- package/dist/es/crypto/sm/sm3/index.d.ts +7 -0
- package/dist/es/crypto/sm/sm3/index.mjs +13 -0
- package/dist/es/crypto/sm/sm3/sm3.d.ts +1 -0
- package/dist/es/crypto/sm/sm3/sm3.mjs +91 -0
- package/dist/es/crypto/sm/sm4/index.d.ts +16 -0
- package/dist/es/crypto/sm/sm4/index.mjs +24 -0
- package/dist/es/crypto/sm/sm4/sm4.d.ts +2 -0
- package/dist/es/crypto/sm/sm4/sm4.mjs +324 -0
- package/dist/es/crypto/tea/index.d.ts +14 -0
- package/dist/es/crypto/tea/index.mjs +22 -0
- package/dist/es/crypto/tea/tea.d.ts +69 -0
- package/dist/es/crypto/tea/tea.mjs +185 -0
- package/dist/es/date/index.d.ts +547 -0
- package/dist/es/date/index.mjs +1179 -0
- package/dist/es/desensitized/index.d.ts +38 -0
- package/dist/es/desensitized/index.mjs +69 -0
- package/dist/es/device/index.d.ts +67 -0
- package/dist/es/device/index.mjs +137 -0
- package/dist/es/dom/index.d.ts +57 -0
- package/dist/es/dom/index.mjs +119 -0
- package/dist/es/file/index.d.ts +93 -0
- package/dist/es/file/index.mjs +317 -0
- package/dist/es/function/index.d.ts +23 -0
- package/dist/es/function/index.mjs +65 -0
- package/dist/es/index.d.ts +26 -1
- package/dist/es/index.mjs +57 -4
- package/dist/es/keycode/index.d.ts +12 -0
- package/dist/es/keycode/index.mjs +30 -0
- package/dist/es/math/index.d.ts +66 -0
- package/dist/es/math/index.mjs +268 -0
- package/dist/es/number/index.d.ts +14 -0
- package/dist/es/number/index.mjs +28 -0
- package/dist/es/object/index.d.ts +83 -0
- package/dist/es/object/index.mjs +259 -0
- package/dist/es/pagination/index.d.ts +34 -0
- package/dist/es/pagination/index.mjs +125 -0
- package/dist/es/random/index.d.ts +15 -0
- package/dist/es/random/index.mjs +21 -0
- package/dist/es/regexp/index.d.ts +63 -0
- package/dist/es/regexp/index.mjs +89 -0
- package/dist/es/storage/index.d.ts +7 -0
- package/dist/es/storage/index.mjs +9 -0
- package/dist/es/storage/localStorage.d.ts +21 -0
- package/dist/es/storage/localStorage.mjs +32 -0
- package/dist/es/storage/sessionStorage.d.ts +21 -0
- package/dist/es/storage/sessionStorage.mjs +32 -0
- package/dist/es/string/index.d.ts +121 -0
- package/dist/es/string/index.mjs +339 -0
- package/dist/es/url/index.d.ts +118 -0
- package/dist/es/url/index.mjs +240 -0
- package/dist/es/validate/index.d.ts +228 -0
- package/dist/es/validate/index.mjs +431 -0
- package/dist/es/weapp/index.d.ts +57 -0
- package/dist/es/weapp/index.mjs +131 -0
- package/dist/index.d.ts +2857 -17
- package/dist/lib/index.full.umd.js +14238 -31
- package/dist/lib/index.full.umd.min.js +64 -2
- package/dist/lib/index.full.umd.min.js.map +1 -1
- package/dist/resolver/auto-imports.cjs +337 -1
- package/dist/resolver/auto-imports.mjs +337 -1
- package/package.json +90 -87
package/README.md
CHANGED
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
[](https://github.com/qq575792372/i-utils)
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
|
|
6
|
-
🔥 **i-utils** 🔥是一款功能强大、高效的一站式前端模块化 **JavaScript**
|
|
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 {
|
|
30
|
+
import { testLoaded } from "@ivu-plus/i-utils";
|
|
32
31
|
|
|
33
|
-
|
|
32
|
+
testLoaded();
|
|
34
33
|
|
|
35
|
-
//
|
|
34
|
+
// 全量引入
|
|
36
35
|
import * as iUtils from "@ivu-plus/i-utils";
|
|
37
36
|
|
|
38
|
-
iUtils.
|
|
37
|
+
iUtils.testLoaded();
|
|
39
38
|
```
|
|
40
39
|
|
|
41
|
-
####
|
|
40
|
+
#### commonjs 服务端环境
|
|
42
41
|
|
|
43
42
|
```javascript
|
|
44
|
-
//
|
|
43
|
+
// 全量引入
|
|
45
44
|
const iUtils = require("@ivu-plus/i-utils");
|
|
46
|
-
iUtils.
|
|
45
|
+
iUtils.testLoaded();
|
|
47
46
|
|
|
48
47
|
// 按需引入
|
|
49
|
-
const {
|
|
50
|
-
|
|
48
|
+
const { testLoaded } = require("@ivu-plus/i-utils");
|
|
49
|
+
testLoaded();
|
|
51
50
|
```
|
|
52
51
|
|
|
53
52
|
#### umd 浏览器环境
|
|
54
53
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
<!--
|
|
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.
|
|
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
|
-
|
|
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`
|
|
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
|
-
|
|
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;
|