# form-fast-validator **Repository Path**: jempson/form-fast-validator ## Basic Information - **Project Name**: form-fast-validator - **Description**: 一个快速创建表单验证的策略库 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2017-11-20 - **Last Updated**: 2021-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Form-fast-validator [](https://www.npmjs.com/package/form-fast-validator) [](https://www.npmjs.com/package/form-fast-validator) [](https://www.npmjs.com/package/form-fast-validator) 一个快速创建表单验证的策略库。 ## 安装 ``` npm install form-fast-validator --save ``` ## 使用 ### 基本 基本的 `HTML` 表单结构。 ```html
``` 实例化 `Validator`,并将表单元素传入。 ```javascript var f = document.forms[0] var validator = new Validator(f) ``` 通过实例的 `.add()` 方法为每个字段注册验证策略。 ```javascript validator .add('username', [ ['notEmpty', '用户名不能为空'], ['min:3', '至少3个字符'], ['max:10', '最多10个字符'], ]) // ... .add('email', [ ['notEmpty', '邮箱不能为空'], ['test:email', '格式不正确'] ]) // ... ``` 在事件回调中,通过实例的 `.result()` 获取验证结果,`.getData()` 获取表单字段数据。 ```javascript // 获取每个字段的验证结果 f.oninput = function (e) { validator.result(e.target.name) } // 获取全部字段的验证结果 f.onsubmit = function (e) { e.preventDefault() if (validator.result()) { console.log(validator.getData('repeatPassword')) } } ``` **现在,您可以到 [codepen.io](https://codepen.io/yeshimei/pen/GOyBRL) 查看这个简单的演示。** ### 自定义错误元素 `validator` 的第二个参数为一个选项对象,可自定义错误元素的 class、类型和默认文本。 **注意:错误元素会在添加验证策略时生成并插入到字段的后面。** ```javascript var validator = new Validator(f, { className: '', // class type: 'span', // 元素类型 text: '' // 默认文本 }) ``` ### 扩展内置正则库 `validator` 内置了一些常用的正则,可由 `._insidePattern` 属性访问,但通常不建议直接扩展,而是通过实例的 `.pattern()` 方法。因为,它提供了一个命名冲突的检查机制。 它接受三个参数: - **name:** 正则的名称。 - **pattern:** 正则表达式。 - **isCover=false** - 可选。如果添加的正则已存在,则会在浏览器上发出一个警告信息。指定为 `true` 时,将会强制覆盖已存在的正则(包括内置)。 ```javascript validator .pattern('username', /^[0-9a-zA-Z_]+$/) .pattern('password', '^[0-9a-zA-Z_]+$') ``` 所有内置和已扩展的正则都可以作为实例的 `.test()` 验证策略的中间参数使用。 ```javascript validator .add('username', [ // ... ['test:username', '只能包含数字、字母和下划线'] ]) ``` ### 扩展验证策略 如果要扩展验证策略,可以直接在 `validator.prototype` 上或者 `实例`上添加方法,每个方法都接受两个必要的参数 - **value**: 用户在字段里输入的值(第一个参数) - **err**: 用户注册验证策略时自定义的错误消息(最后一个参数) - **arg1, ...**: 可选的中间参数(放在中间的若干个参数) ```javascript validator.is = function (val, arg1, err) { if (val !== arg1) { // 必须返回错误消息,作为函数的结束 return err } } ``` ## API ## Validator 构造器 - new Validator(form