fast-element-plus 2.0.11 → 2.0.13
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/CHANGELOG.md +15 -0
- package/dist/components/form/utils/form.mjs +2 -2
- package/dist/components/form/utils/form.mjs.map +1 -1
- package/dist/constants/regex.d.ts +14 -2
- package/dist/constants/regex.mjs +18 -6
- package/dist/constants/regex.mjs.map +1 -1
- package/dist/index.global.min.js +2 -2
- package/dist/index.global.min.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.mjs +1 -1
- package/dist/version.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to Fast.Element.Plus are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [2.0.13] - 2026-09-04
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Tightened mainland China mobile-number validation and expanded email validation to support standard local-part characters and general top-level domains.
|
|
10
|
+
- Added medium-password, six-digit verification-code, and four-character image-CAPTCHA regular expressions, and disallowed whitespace in medium and strong passwords.
|
|
11
|
+
|
|
12
|
+
## [2.0.12] - 2026-09-03
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Updated `formUtil.validate` and `formUtil.validateScrollToField` to reject with `false` on validation failure instead of an `Error`. This also applies to `FaForm.validate()` without a callback and `FaForm.validateScrollToField()`; unmounted forms still reject with an `Error`.
|
|
17
|
+
|
|
5
18
|
## [2.0.11] - 2026-09-01
|
|
6
19
|
|
|
7
20
|
### Fixed
|
|
@@ -130,6 +143,8 @@ All notable changes to Fast.Element.Plus are documented in this file.
|
|
|
130
143
|
- Scoped Table styles and added responsive IconSelector styling.
|
|
131
144
|
- Improved dialogs, drawers, tables, forms, trees, selectors, car-number input, images, and uploads for dark mode, touch input, and narrow viewports.
|
|
132
145
|
|
|
146
|
+
[2.0.13]: https://gitee.com/FastDotnet/fast.element.plus/releases/tag/v2.0.13
|
|
147
|
+
[2.0.12]: https://gitee.com/FastDotnet/fast.element.plus/releases/tag/v2.0.12
|
|
133
148
|
[2.0.11]: https://gitee.com/FastDotnet/fast.element.plus/releases/tag/v2.0.11
|
|
134
149
|
[2.0.10]: https://gitee.com/FastDotnet/fast.element.plus/releases/tag/v2.0.10
|
|
135
150
|
[2.0.9]: https://gitee.com/FastDotnet/fast.element.plus/releases/tag/v2.0.9
|
|
@@ -19,7 +19,7 @@ const formUtil = {
|
|
|
19
19
|
if (isValid) resolve(isValid);
|
|
20
20
|
else {
|
|
21
21
|
if (invalidFields) console.warn("[Fast:formUtil]", "表单验证失败。", invalidFields);
|
|
22
|
-
reject(
|
|
22
|
+
reject(isValid);
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
});
|
|
@@ -40,7 +40,7 @@ const formUtil = {
|
|
|
40
40
|
else {
|
|
41
41
|
form.scrollToField(Object.keys(invalidFields ?? {}));
|
|
42
42
|
if (invalidFields) console.warn("[Fast:formUtil]", "表单验证失败。", invalidFields);
|
|
43
|
-
reject(
|
|
43
|
+
reject(isValid);
|
|
44
44
|
}
|
|
45
45
|
});
|
|
46
46
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.mjs","names":[],"sources":["../../../../src/components/form/utils/form.ts"],"sourcesContent":["import { RegExps } from \"../../../constants\";\nimport type { FormInstance, FormItemRule, FormValidationResult } from \"element-plus\";\nimport type { Ref } from \"vue\";\n\ntype ValidationCallback = (error?: Error) => void;\n\n/**\n * 表单工具类\n */\nexport const formUtil = {\n\t/**\n\t * ElForm 表单验证\n\t * @param elFormRef ElForm 组件ref\n\t */\n\tvalidate(elFormRef: Ref<FormInstance | undefined>): FormValidationResult {\n\t\treturn new Promise<boolean>((resolve, reject) => {\n\t\t\tconst form = elFormRef.value;\n\t\t\tif (form === undefined) {\n\t\t\t\treject(new Error(\"ElForm 实例尚未挂载。\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvoid form.validate((isValid: boolean, invalidFields?) => {\n\t\t\t\tif (isValid) {\n\t\t\t\t\tresolve(isValid);\n\t\t\t\t} else {\n\t\t\t\t\tif (invalidFields) {\n\t\t\t\t\t\tconsole.warn(\"[Fast:formUtil]\", \"表单验证失败。\", invalidFields);\n\t\t\t\t\t}\n\t\t\t\t\treject(
|
|
1
|
+
{"version":3,"file":"form.mjs","names":[],"sources":["../../../../src/components/form/utils/form.ts"],"sourcesContent":["import { RegExps } from \"../../../constants\";\nimport type { FormInstance, FormItemRule, FormValidationResult } from \"element-plus\";\nimport type { Ref } from \"vue\";\n\ntype ValidationCallback = (error?: Error) => void;\n\n/**\n * 表单工具类\n */\nexport const formUtil = {\n\t/**\n\t * ElForm 表单验证\n\t * @param elFormRef ElForm 组件ref\n\t */\n\tvalidate(elFormRef: Ref<FormInstance | undefined>): FormValidationResult {\n\t\treturn new Promise<boolean>((resolve, reject) => {\n\t\t\tconst form = elFormRef.value;\n\t\t\tif (form === undefined) {\n\t\t\t\treject(new Error(\"ElForm 实例尚未挂载。\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvoid form.validate((isValid: boolean, invalidFields?) => {\n\t\t\t\tif (isValid) {\n\t\t\t\t\tresolve(isValid);\n\t\t\t\t} else {\n\t\t\t\t\tif (invalidFields) {\n\t\t\t\t\t\tconsole.warn(\"[Fast:formUtil]\", \"表单验证失败。\", invalidFields);\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n\t\t\t\t\treject(isValid);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t},\n\t/**\n\t * ElForm 表单验证,带滚动\n\t * @param elFormRef ElForm 组件ref\n\t */\n\tvalidateScrollToField(elFormRef: Ref<FormInstance | undefined>): FormValidationResult {\n\t\treturn new Promise<boolean>((resolve, reject) => {\n\t\t\tconst form = elFormRef.value;\n\t\t\tif (form === undefined) {\n\t\t\t\treject(new Error(\"ElForm 实例尚未挂载。\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvoid form.validate((isValid: boolean, invalidFields?) => {\n\t\t\t\tif (isValid) {\n\t\t\t\t\tresolve(isValid);\n\t\t\t\t} else {\n\t\t\t\t\tform.scrollToField(Object.keys(invalidFields ?? {}));\n\t\t\t\t\tif (invalidFields) {\n\t\t\t\t\t\tconsole.warn(\"[Fast:formUtil]\", \"表单验证失败。\", invalidFields);\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n\t\t\t\t\treject(isValid);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t},\n\t/**\n\t * 手机号\n\t */\n\tmobile(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (!value) {\n\t\t\tcallback(new Error(\"请输入手机号码\"));\n\t\t} else if (RegExps.Mobile.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入正确的手机号码\"));\n\t\t}\n\t},\n\t/**\n\t * 电话号码\n\t */\n\tphone(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (!value) {\n\t\t\tcallback();\n\t\t} else if (RegExps.Phone.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入正确的电话号码\"));\n\t\t}\n\t},\n\t/**\n\t * 邮箱\n\t */\n\temail(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (!value) {\n\t\t\tcallback();\n\t\t} else if (RegExps.Email.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入正确的邮箱地址\"));\n\t\t}\n\t},\n\t/**\n\t * 身份证\n\t */\n\tidCard(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.IdCard.test(value) || !value) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入正确的身份证号码\"));\n\t\t}\n\t},\n\t/**\n\t * 车牌号\n\t */\n\tcarNumber(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tlet success = false;\n\t\tif (value?.length === 7) {\n\t\t\tsuccess = RegExps.CarNumber.test(value);\n\t\t} else if (value?.length === 8) {\n\t\t\tsuccess = RegExps.NewEnergyCarNumber.test(value);\n\t\t}\n\t\tif (success) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入正确的车牌号码\"));\n\t\t}\n\t},\n\t/**\n\t * editor 必填\n\t */\n\teditorRequired(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (value === \"<p><br></p>\") {\n\t\t\treturn callback(new Error(\"内容不能为空\"));\n\t\t}\n\t\treturn callback();\n\t},\n\t/**\n\t * 外部链接\n\t */\n\texternal(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.External.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入正确的外部链接\"));\n\t\t}\n\t},\n\t/**\n\t * 有效的URL\n\t */\n\turl(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.Url.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入有效的 URL。\"));\n\t\t}\n\t},\n\t/**\n\t * 邮政编码\n\t */\n\tpostCode(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.PostCode.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入有效的邮政编码\"));\n\t\t}\n\t},\n\t/**\n\t * 账号(6-20位字母或数字,必须以字母开头,不能全为数字)\n\t */\n\taccount(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.Account.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入有效的账号(6-20位字母或数字,必须以字母开头,不能全为数字)\"));\n\t\t}\n\t},\n\t/**\n\t * 弱密码(只包含字母和数字,长度为6到18位)\n\t */\n\tpassword(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.Password.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入有效的密码(只包含字母和数字,长度为6到18位)\"));\n\t\t}\n\t},\n\t/**\n\t * 强密码(8到20位,包含大小写字母、数字及特殊字符)\n\t */\n\tstrongPassword(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.StrongPassword.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入有效的密码(8到20位,包含大小写字母、数字及特殊字符)\"));\n\t\t}\n\t},\n\t/**\n\t * 中文字符\n\t */\n\tchinese(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.Chinese.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入有效的中文字符\"));\n\t\t}\n\t},\n\t/**\n\t * 英文字符\n\t */\n\tenglish(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.English.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入有效的英文字符\"));\n\t\t}\n\t},\n\t/**\n\t * 文本框必填\n\t */\n\tinputRequired(message: string, trigger = \"blur\"): FormItemRule {\n\t\treturn {\n\t\t\trequired: true,\n\t\t\tmessage,\n\t\t\ttrigger,\n\t\t};\n\t},\n\t/**\n\t * 选择器必选\n\t */\n\tselectRequired(message: string, trigger = \"change\"): FormItemRule {\n\t\treturn {\n\t\t\trequired: true,\n\t\t\tmessage,\n\t\t\ttrigger,\n\t\t};\n\t},\n};\n"],"mappings":"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"}
|
|
@@ -58,11 +58,15 @@ export declare const RegExps: {
|
|
|
58
58
|
*/
|
|
59
59
|
Account: RegExp;
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
61
|
+
* 弱密码(6~18位,仅包含字母和数字)
|
|
62
62
|
*/
|
|
63
63
|
Password: RegExp;
|
|
64
64
|
/**
|
|
65
|
-
*
|
|
65
|
+
* 中密码(8~20位,必须包含大小写字母、数字)
|
|
66
|
+
*/
|
|
67
|
+
MediumPassword: RegExp;
|
|
68
|
+
/**
|
|
69
|
+
* 强密码(8~20位,必须包含大小写字母、数字及特殊字符)
|
|
66
70
|
*/
|
|
67
71
|
StrongPassword: RegExp;
|
|
68
72
|
/**
|
|
@@ -73,4 +77,12 @@ export declare const RegExps: {
|
|
|
73
77
|
* 英文字符
|
|
74
78
|
*/
|
|
75
79
|
English: RegExp;
|
|
80
|
+
/**
|
|
81
|
+
* 验证码6位
|
|
82
|
+
*/
|
|
83
|
+
VerificationCode: RegExp;
|
|
84
|
+
/**
|
|
85
|
+
* 图片验证码4位
|
|
86
|
+
*/
|
|
87
|
+
ImageCaptchaCode: RegExp;
|
|
76
88
|
};
|
package/dist/constants/regex.mjs
CHANGED
|
@@ -8,7 +8,7 @@ const RegExps = {
|
|
|
8
8
|
/**
|
|
9
9
|
* 手机号
|
|
10
10
|
*/
|
|
11
|
-
Mobile: /^
|
|
11
|
+
Mobile: /^1[3-9]\d{9}$/,
|
|
12
12
|
/**
|
|
13
13
|
* 电话
|
|
14
14
|
*/
|
|
@@ -16,7 +16,7 @@ const RegExps = {
|
|
|
16
16
|
/**
|
|
17
17
|
* 邮箱
|
|
18
18
|
*/
|
|
19
|
-
Email: /^[
|
|
19
|
+
Email: /^[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z]{2,}$/,
|
|
20
20
|
/**
|
|
21
21
|
* 身份证
|
|
22
22
|
*/
|
|
@@ -59,13 +59,17 @@ const RegExps = {
|
|
|
59
59
|
*/
|
|
60
60
|
Account: /^[a-z][a-z\d]{5,19}$/i,
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
62
|
+
* 弱密码(6~18位,仅包含字母和数字)
|
|
63
63
|
*/
|
|
64
64
|
Password: /^[A-Z0-9]{6,18}$/i,
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
66
|
+
* 中密码(8~20位,必须包含大小写字母、数字)
|
|
67
67
|
*/
|
|
68
|
-
|
|
68
|
+
MediumPassword: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)\S{8,20}$/,
|
|
69
|
+
/**
|
|
70
|
+
* 强密码(8~20位,必须包含大小写字母、数字及特殊字符)
|
|
71
|
+
*/
|
|
72
|
+
StrongPassword: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\w\s])\S{8,20}$/,
|
|
69
73
|
/**
|
|
70
74
|
* 中文字符
|
|
71
75
|
*/
|
|
@@ -73,7 +77,15 @@ const RegExps = {
|
|
|
73
77
|
/**
|
|
74
78
|
* 英文字符
|
|
75
79
|
*/
|
|
76
|
-
English: /^[a-z]+$/i
|
|
80
|
+
English: /^[a-z]+$/i,
|
|
81
|
+
/**
|
|
82
|
+
* 验证码6位
|
|
83
|
+
*/
|
|
84
|
+
VerificationCode: /^[0-9]{6}$/,
|
|
85
|
+
/**
|
|
86
|
+
* 图片验证码4位
|
|
87
|
+
*/
|
|
88
|
+
ImageCaptchaCode: /^[A-Za-z0-9]{4}$/
|
|
77
89
|
};
|
|
78
90
|
//#endregion
|
|
79
91
|
export { RegExps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regex.mjs","names":[],"sources":["../../src/constants/regex.ts"],"sourcesContent":["/** Fast 业务表单和输入组件共享的正则表达式集合。 */\nexport const RegExps = {\n\t/**\n\t * UUID\n\t */\n\tUUID: /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,\n\t/**\n\t * 手机号\n\t */\n\tMobile: /^
|
|
1
|
+
{"version":3,"file":"regex.mjs","names":[],"sources":["../../src/constants/regex.ts"],"sourcesContent":["/** Fast 业务表单和输入组件共享的正则表达式集合。 */\nexport const RegExps = {\n\t/**\n\t * UUID\n\t */\n\tUUID: /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,\n\t/**\n\t * 手机号\n\t */\n\tMobile: /^1[3-9]\\d{9}$/,\n\t/**\n\t * 电话\n\t */\n\tPhone: /^(?:(?:\\d{3}-)?\\d{8}|(?:\\d{4}-)?\\d{7,8})(?:-\\d+)?$/,\n\t/**\n\t * 邮箱\n\t */\n\tEmail: /^[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z]{2,}$/,\n\t/**\n\t * 身份证\n\t */\n\tIdCard: /(^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9X]$)|(^[1-9]\\d{7}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{2}[0-9X]$)/i,\n\t/**\n\t * 外部链接\n\t * 匹配http、https、mailto、tel和ftp开头的链接\n\t */\n\tExternal: /^(https?:|mailto:|tel:|ftp:)/,\n\t/**\n\t * Url\n\t */\n\tUrl: /^(https?|ftp):\\/\\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d?)(\\.(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)){3}|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:\\d+)*(\\/($|[\\w.,?'\\\\+&%$#=~-]+))*$/,\n\t/**\n\t * 车牌号\n\t */\n\tCarNumber: /^[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新军使领][A-HJ-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$/,\n\t/**\n\t * 新能源车牌号\n\t */\n\tNewEnergyCarNumber:\n\t\t/^[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新军使领][A-HJ-Z]((\\d{5}[DF]$)|([A-E][A-HJ-NP-Z0-9]\\d{3}[0-9挂学警港澳]$)|([FGHJK][A-HJ-NP-Z0-9]\\d{3}[0-9挂学警港澳]$))/,\n\t/**\n\t * 邮政编码\n\t */\n\tPostCode: /^[1-9]\\d{5}$/,\n\t/**\n\t * ipv4\n\t */\n\tIpv4: /^([01]?\\d{1,2}|2[0-4]\\d|25[0-5])\\.([01]?\\d{1,2}|2[0-4]\\d|25[0-5])\\.([01]?\\d{1,2}|2[0-4]\\d|25[0-5])\\.([01]?\\d{1,2}|2[0-4]\\d|25[0-5])$/,\n\t/**\n\t * 护照\n\t */\n\tPassport: /^[EG]\\d{8}$/i,\n\t/**\n\t * 港澳通行证\n\t */\n\tHKMacauPass: /^[HM]\\d{8}$/i,\n\t/**\n\t * 账号(6-20位字母或数字,必须以字母开头,不能全为数字)\n\t */\n\tAccount: /^[a-z][a-z\\d]{5,19}$/i,\n\t/**\n\t * 弱密码(6~18位,仅包含字母和数字)\n\t */\n\tPassword: /^[A-Z0-9]{6,18}$/i,\n\t/**\n\t * 中密码(8~20位,必须包含大小写字母、数字)\n\t */\n\tMediumPassword: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)\\S{8,20}$/,\n\t/**\n\t * 强密码(8~20位,必须包含大小写字母、数字及特殊字符)\n\t */\n\tStrongPassword: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^\\w\\s])\\S{8,20}$/,\n\t/**\n\t * 中文字符\n\t */\n\tChinese: /^[\\u4E00-\\u9FA5]+$/,\n\t/**\n\t * 英文字符\n\t */\n\tEnglish: /^[a-z]+$/i,\n\t/**\n\t * 验证码6位\n\t */\n\tVerificationCode: /^[0-9]{6}$/,\n\t/**\n\t * 图片验证码4位\n\t */\n\tImageCaptchaCode: /^[A-Za-z0-9]{4}$/,\n};\n"],"mappings":";;AACA,MAAa,UAAU;;;;CAItB,MAAM;;;;CAIN,QAAQ;;;;CAIR,OAAO;;;;CAIP,OAAO;;;;CAIP,QAAQ;;;;;CAKR,UAAU;;;;CAIV,KAAK;;;;CAIL,WAAW;;;;CAIX,oBACC;;;;CAID,UAAU;;;;CAIV,MAAM;;;;CAIN,UAAU;;;;CAIV,aAAa;;;;CAIb,SAAS;;;;CAIT,UAAU;;;;CAIV,gBAAgB;;;;CAIhB,gBAAgB;;;;CAIhB,SAAS;;;;CAIT,SAAS;;;;CAIT,kBAAkB;;;;CAIlB,kBAAkB;AACnB"}
|