2
0

fix:注册界面格式校验修复

This commit is contained in:
zhongzm
2025-01-14 16:36:04 +08:00
parent f546fc466a
commit 3d072513f1
3 changed files with 37 additions and 8 deletions

View File

@@ -71,15 +71,38 @@ const securityModel = reactive<SecurityFormModel>({
// 第一步表单验证规则
const basicRules = computed<Record<string, Rule | Rule[]>>(() => {
const validateUsername = async (_rule: Rule, value: string) => {
if (value && (value.length < 4 || value.length > 20)) {
// 空值检查
if (!value) {
return Promise.reject(t('page.login.register.usernameRequired'));
}
// 长度检查 (3-20字符)
if (value.length < 3 || value.length > 20) {
return Promise.reject(t('page.login.register.usernameLengthLimit'));
}
if (value) {
// 格式检查 (只允许字母、数字、下划线)
const usernamePattern = /^[a-zA-Z0-9_]+$/;
if (!usernamePattern.test(value)) {
return Promise.reject(t('page.login.register.usernameFormatError'));
}
// 首字符必须是字母
if (!/^[a-zA-Z]/.test(value)) {
return Promise.reject(t('page.login.register.usernameStartWithLetter'));
}
// 重复性检查
try {
const { exists } = await authStore.checkUserRepeat({ username: value, authType: 'u' });
if (exists) {
return Promise.reject(t('page.login.register.usernameExists'));
}
} catch (error) {
console.error('Username validation error:', error);
return Promise.reject(t('page.login.register.validationError'));
}
return Promise.resolve();
};