@yoooloo42/bean 1.0.8 → 1.0.9
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/package.json +1 -1
- package/src/utils/index.js +2 -0
- package/src/utils/random.js +56 -0
- package/src/utils/regex.js +27 -2
package/package.json
CHANGED
package/src/utils/index.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import dateFormat from './dateFormat.js';
|
|
2
2
|
import deepClone from './deepClone.js';
|
|
3
|
+
import random from './random.js'
|
|
3
4
|
import regex from './regex.js'
|
|
4
5
|
import sort from './sort.js';
|
|
5
6
|
|
|
6
7
|
const bean = {
|
|
7
8
|
dateFormat,
|
|
8
9
|
deepClone,
|
|
10
|
+
random,
|
|
9
11
|
regex,
|
|
10
12
|
sort
|
|
11
13
|
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 随机生成一个符合常见验证码规则(4-8位,数字+大小写字母)的字符串。
|
|
3
|
+
* @returns {string} - 随机生成的验证码字符串。
|
|
4
|
+
*/
|
|
5
|
+
function vercode() {
|
|
6
|
+
// 定义所有允许的字符集 (数字 0-9, 小写字母 a-z, 大写字母 A-Z)
|
|
7
|
+
const characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
8
|
+
const charactersLength = characters.length;
|
|
9
|
+
|
|
10
|
+
// 随机确定验证码的长度,范围在 [4, 8] 之间
|
|
11
|
+
// Math.random() * (max - min + 1) + min
|
|
12
|
+
const minLength = 4;
|
|
13
|
+
const maxLength = 8;
|
|
14
|
+
const length = Math.floor(Math.random() * (maxLength - minLength + 1)) + minLength;
|
|
15
|
+
|
|
16
|
+
let result = '';
|
|
17
|
+
|
|
18
|
+
// 循环 'length' 次,每次随机从 characters 中选择一个字符
|
|
19
|
+
for (let i = 0; i < length; i++) {
|
|
20
|
+
// 随机选择字符的索引
|
|
21
|
+
const randomIndex = Math.floor(Math.random() * charactersLength);
|
|
22
|
+
|
|
23
|
+
// 将随机选中的字符添加到结果字符串中
|
|
24
|
+
result += characters.charAt(randomIndex);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* 随机生成一个固定 6 位长度、包含数字和大小写字母的验证码字符串。
|
|
32
|
+
* @returns {string} - 随机生成的 6 位验证码字符串。
|
|
33
|
+
*/
|
|
34
|
+
function vercode6(length = 6) {
|
|
35
|
+
// 定义所有允许的字符集 (数字 0-9, 小写字母 a-z, 大写字母 A-Z)
|
|
36
|
+
const characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
37
|
+
const charactersLength = characters.length;
|
|
38
|
+
|
|
39
|
+
let result = '';
|
|
40
|
+
// 循环 6 次,每次随机从 characters 中选择一个字符
|
|
41
|
+
for (let i = 0; i < length; i++) {
|
|
42
|
+
// 随机选择字符的索引
|
|
43
|
+
const randomIndex = Math.floor(Math.random() * charactersLength);
|
|
44
|
+
|
|
45
|
+
// 将随机选中的字符添加到结果字符串中
|
|
46
|
+
result += characters.charAt(randomIndex);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const bean = {
|
|
53
|
+
vercode,
|
|
54
|
+
vercode6
|
|
55
|
+
}
|
|
56
|
+
export default bean
|
package/src/utils/regex.js
CHANGED
|
@@ -115,7 +115,7 @@ function password(str) {
|
|
|
115
115
|
/**
|
|
116
116
|
* 验证一个字符串是否符合常见的验证码规则。
|
|
117
117
|
* 规则:长度在 4 到 8 位之间,内容只包含数字和大小写字母。
|
|
118
|
-
* * @param {string}
|
|
118
|
+
* * @param {string} str - 需要验证的字符串。
|
|
119
119
|
* @returns {boolean} - 如果符合规则返回 true,否则返回 false。
|
|
120
120
|
*/
|
|
121
121
|
function vercode(str) {
|
|
@@ -135,10 +135,35 @@ function vercode(str) {
|
|
|
135
135
|
return Regex.test(str);
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
+
/**
|
|
139
|
+
* 验证一个字符串是否符合固定的 6 位验证码规则。
|
|
140
|
+
* 规则:长度必须是 6 位,内容只包含数字和大小写字母。
|
|
141
|
+
* @param {string} str - 需要验证的字符串。
|
|
142
|
+
* @param {number} length - 验证码必须具备的固定长度
|
|
143
|
+
* @returns {boolean} - 如果符合规则返回 true,否则返回 false。
|
|
144
|
+
*/
|
|
145
|
+
function vercode6(str, length=6) {
|
|
146
|
+
// 1. 检查输入是否为字符串(可选,但推荐)
|
|
147
|
+
if (typeof str !== 'string') {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// 2. 正则表达式解释:
|
|
152
|
+
// ^ 表示字符串的开始
|
|
153
|
+
// [0-9a-zA-Z] 表示字符必须是数字(0-9)或大小写字母(a-z, A-Z)
|
|
154
|
+
// {6} 表示字符的长度必须恰好是 6 位
|
|
155
|
+
// $ 表示字符串的结束
|
|
156
|
+
const Regex = new RegExp('^[0-9a-zA-Z]{' + length + '}$');
|
|
157
|
+
|
|
158
|
+
// 3. 执行匹配
|
|
159
|
+
return Regex.test(str);
|
|
160
|
+
}
|
|
161
|
+
|
|
138
162
|
const bean = {
|
|
139
163
|
cellphone,
|
|
140
164
|
email,
|
|
141
165
|
password,
|
|
142
|
-
vercode
|
|
166
|
+
vercode,
|
|
167
|
+
vercode6
|
|
143
168
|
}
|
|
144
169
|
export default bean
|