简介
sm-validation-module
是一个轻量级的前端验证库,其目的是为了方便开发人员快速进行表单验证。该库支持多种数据类型验证,支持自定义验证方法,同时也支持异步验证。
安装
使用 npm 进行安装:
npm install sm-validation-module --save
使用示例
常规验证
-- -------------------- ---- ------- ------ ---------------- ---- ----------------------- ----- ---------------- - --- ------------------- ----- ----- - - - ----- ----------- --------- ----- -------- -------- -- - ----- ----------- --------- ----- -------- ------- -- -- ----- ---- - - --------- --- --------- -- -- ----- ------ - -------------------------------- ------ -------------------- -- -- -- ----- ----------- -------- -------- -- - ----- ----------- -------- ------- --
在上述示例中,我们使用 ValidationHelper
的 validate
方法对 data
数据进行验证。rules
数组包含需要验证的字段及其规则,例如 { name: 'username', required: true, message: '请输入用户名' }
表示验证 data
对象中的 username
字段是否为空,如果为空,则返回错误消息 '请输入用户名'
。
自定义验证方法
我们可以使用 ValidationHelper
类的 addMethod
方法添加自定义验证方法:
-- -------------------- ---- ------- ------ ---------------- ---- ----------------------- ----- ---------------- - --- ------------------- ----- ----- - - - ----- -------- ------ ----- -------- ------------ -- -- ----- ---- - - ------ -------- -- ----------------------------------- ------- -- - ----- -------- - ------------------------------------------------ ------ --------------------- --- ----- ------ - -------------------------------- ------ -------------------- -- -- -- ----- -------- -------- ------------ --
异步验证
对于需要异步验证的规则,我们可以使用 promise
对象返回结果。
-- -------------------- ---- ------- ------ ---------------- ---- ----------------------- ----- ---------------- - --- ------------------- ----- ----- - - - ----- ----------- --------- ----- -------- --------- -- - ----- -------- ------ ----- -------- ------------- --------------- ------- -- - ------ --- ----------------- ------- -- - ------------- -- - ---------- -- ------ --- -- -- -- ----- ---- - - --------- --- ------ -------- -- ----- ------ - ----- ------------------------------------- ------ -------------------- -- -- -- ----- ----------- -------- -------- -- - ----- -------- -------- ------------ --
在上述示例中,我们添加了一个异步验证方法 asyncValidator
,在验证 email
字段时会异步返回结果,等待 1 秒钟后才会验证通过。
API 文档
ValidationHelper
类
validate(rules: ValidationRule[], data: Record<string, any>): ValidationError[]
,常规验证方法,返回错误消息列表。validateAsync(rules: ValidationRule[], data: Record<string, any>): Promise<ValidationError[]>
,异步验证方法,返回promise
对象,可以使用await
等待异步方法的返回。addMethod(name: string, validator: (value: any) => boolean): void
,添加自定义验证方法。setLocale(locale: string): void
,设置本地化语言(默认为英文)。
类型定义
ValidationRule
,验证规则,对象类型,包含以下属性:name: string
,字段名称,必须与data
中的字段名称对应。validator?: (value: any) => boolean
,自定义验证方法,如果提供了该属性,无需提供type
和required
属性。type?: 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object' | 'email' | 'url' | 'date' | 'datetime'
,数据类型,可选,default: 'string'。required?: boolean
,是否必填,可选,default: false。如果设置了该属性,则validator
属性无效。message?: string
,错误提示信息,可选。asyncValidator?: (value: any) => Promise<void>
,异步验证方法,可选。
ValidationError
,错误消息类型,对象类型,包含以下属性:name: string
,字段名称,必须与data
中的字段名称对应。message: string
,错误提示信息。
总结
sm-validation-module
是一个功能丰富,易于使用的前端验证库。我们可以使用该库快速实现表单验证,并且支持自定义验证方法和异步验证。本文介绍了如何在项目中使用该库,希望对读者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005671f81e8991b448e384f