HarmonyOS 鸿蒙Next有没有表单快速校验的工具类或者方法

HarmonyOS 鸿蒙Next有没有表单快速校验的工具类或者方法 【设备信息】Mate60
【API版本】Api12
【DevEco Studio版本】5.0.3.910
【问题描述】鸿蒙有没有表单快速校验的工具类或者方法

3 回复

我理解的校验工具类或方法是像vue的validata方法,这种是没有的,需要自己写校验

更多关于HarmonyOS 鸿蒙Next有没有表单快速校验的工具类或者方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


自定义校验工具类

可以创建一个工具类,将常用的校验规则封装在其中,例如校验邮箱、手机号码、密码长度等。

class FormValidator 
{
    // 校验邮箱
    static function validateEmail(email: string): boolean {
        const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
        return emailRegex.test(email);
    }

    // 校验手机号码
    static function validatePhoneNumber(phone: string): boolean {
        const phoneRegex = /^1[3-9]\d{9}$/;
        return phoneRegex.test(phone);
    }

    // 校验密码长度
    static function validatePasswordLength(password: string, minLength: number, maxLength: number): boolean {
        return password.length >= minLength && password.length <= maxLength;
    }
}
  1. 在表单中使用校验工具类

在表单组件中调用上述工具类的方法进行校验。以下是一个简单的表单示例,包含邮箱和密码输入框,并进行校验:

@Entry
@Component
struct FormValidationExample {
    @State email: string = '';
    @State password: string = '';
    @State emailError: boolean = false;
    @State passwordError: boolean = false;

    handleSubmit() {
        this.emailError = !FormValidator.validateEmail(this.email);
        this.passwordError = !FormValidator.validatePasswordLength(this.password, 6, 20);

        if (!this.emailError && !this.passwordError) {
            // 表单校验通过,执行提交操作
            console.log('表单提交成功,邮箱:', this.email, ',密码:', this.password);
        } else {
            console.log('表单校验失败');
        }
    }

    build() {
        Column({ space: 20 }) {
            TextField({
                placeholder: '请输入邮箱',
                onInput: (value: string) => {
                    this.email = value;
                }
            })
           .borderColor(this.emailError? Color.Red : Color.Gray)

            TextField({
                placeholder: '请输入密码',
                type: InputType.Password,
                onInput: (value: string) => {
                    this.password = value;
                }
            })
           .borderColor(this.passwordError? Color.Red : Color.Gray)

            Button('提交')
               .onClick(() => {
                    this.handleSubmit();
                })
        }
       .width('100%')
       .padding({ left: 20, right: 20, top: 50 })
    }
}

HarmonyOS 鸿蒙Next提供了FormKit组件库,其中包含了表单快速校验的工具类和方法。FormKit支持通过预定义的规则进行表单字段的校验,如必填、长度、格式等。开发者可以使用FormValidator类来实现表单校验,该类提供了validate方法用于校验表单数据是否符合规则。此外,FormKit还支持自定义校验规则,开发者可以通过实现Validator接口来定义特定的校验逻辑。校验结果会以ValidationResult对象返回,包含校验是否通过及错误信息。

回到顶部