All Projects → MinJieLiu → validate-framework

MinJieLiu / validate-framework

Licence: MIT license
validate-framework:一款轻量、无依赖的 JavaScript 验证组件

Programming Languages

HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to validate-framework

checker
Golang parameter validation, which can replace go-playground/validator, includes ncluding Cross Field, Map, Slice and Array diving, provides readable,flexible, configurable validation.
Stars: ✭ 62 (+12.73%)
Mutual labels:  validator, validate
Validator.js
⁉️轻量级的 JavaScript 表单验证,字符串验证。没有依赖,支持 UMD ,~3kb。
Stars: ✭ 486 (+783.64%)
Mutual labels:  validator, validate
Validate
A simple jQuery plugin to validate forms.
Stars: ✭ 298 (+441.82%)
Mutual labels:  validator, validate
python-valid8
Yet another validation lib ;). Provides tools for general-purpose variable validation, function inputs/outputs validation as well as class fields validation. All entry points raise consistent ValidationError including all contextual details, with dynamic inheritance of ValueError/TypeError as appropriate.
Stars: ✭ 24 (-56.36%)
Mutual labels:  validator, validate
Vee Validate
✅ Form Validation for Vue.js
Stars: ✭ 8,820 (+15936.36%)
Mutual labels:  validator, validate
Validator.js
String validation
Stars: ✭ 18,842 (+34158.18%)
Mutual labels:  validator, validate
Validate
⚔ Go package for data validation and filtering. support Map, Struct, Form data. Go通用的数据验证与过滤库,使用简单,内置大部分常用验证、过滤器,支持自定义验证器、自定义消息、字段翻译。
Stars: ✭ 378 (+587.27%)
Mutual labels:  validator, validate
Nice Validator
Simple, smart and pleasant validation solution.
Stars: ✭ 587 (+967.27%)
Mutual labels:  validator, validate
Fast Xml Parser
Validate XML, Parse XML to JS/JSON and vise versa, or parse XML to Nimn rapidly without C/C++ based libraries and no callback
Stars: ✭ 1,021 (+1756.36%)
Mutual labels:  validator, validate
Fastest Validator
⚡️ The fastest JS validator library for NodeJS
Stars: ✭ 923 (+1578.18%)
Mutual labels:  validator, validate
vayder
Easy and concise validations for Express routes
Stars: ✭ 26 (-52.73%)
Mutual labels:  validator, validate
FilterInputJs
Tiny and Powerful Library for limit an entry (text box,input) as number,string or more...
Stars: ✭ 37 (-32.73%)
Mutual labels:  validator, validate
valite
🔥 Concurrently execute your validators in a simple, practical and light validator engine.
Stars: ✭ 20 (-63.64%)
Mutual labels:  validator, validate
Natours
An awesome tour booking web app written in NodeJS, Express, MongoDB 🗽
Stars: ✭ 94 (+70.91%)
Mutual labels:  validator
validid
A Javascript library to validate ID card numbers of China, Taiwan, Hong Kong and South Korea
Stars: ✭ 37 (-32.73%)
Mutual labels:  validate
formurai
Lightweight and powerfull library for declarative form validation
Stars: ✭ 49 (-10.91%)
Mutual labels:  validator
react-formulation
Simple React form validation
Stars: ✭ 14 (-74.55%)
Mutual labels:  validate
nucked-truth-of-files
HollyJS Moscow
Stars: ✭ 14 (-74.55%)
Mutual labels:  validate
romans
A Simple PHP Roman Numerals Library
Stars: ✭ 40 (-27.27%)
Mutual labels:  validator
codeowners-validator
The GitHub CODEOWNERS file validator
Stars: ✭ 142 (+158.18%)
Mutual labels:  validator

#validate-framework

npm version

一款轻量、无依赖的 JavaScript 验证组件

Demo: http://minjieliu.github.io/validate-framework/example

特性

  1. 轻量、无依赖
  2. 相同 name 的表单验证
  3. 动态验证
  4. 兼容 chrome 、firfox 、IE9 +

快速上手

通过 npm 安装

npm install validate-framework --save

基本用法:

<form name="basicForm">
  <div class="form-group">
    <label for="email">邮箱:</label>
    <input class="form-control" id="email" name="email" type="email" placeholder="请输入邮箱" />
  </div>
  <div class="form-group">
    <label for="phone">手机:</label>
    <input class="form-control" id="phone" name="phone" type="text" placeholder="请输入手机号" />
  </div>
  <input class="btn btn-primary" id="submit" type="submit" value="提交" />
</form>
import validateFramework from 'validate-framework';

const validator = new validateFramework({
  formName: 'basicForm',
  fields: {
    email: {
      rules: 'required | isEmail | maxLength(32)',
      messages: "不能为空 | 请输入合法邮箱 | 不能超过 {{param}} 个字符"
    },
    phone: {
      rules: 'isPhone',
      messages: "手机号: {{value}} 不合法"
    }
  },
  callback: function (result, error) {
    // 阻止表单提交
    validator.preventSubmit();
    // do something...
  }
});

// 验证
validator.validate();

说明文档

new validateFramework(options)

options

options (必选)

  • formName (必选) 是 <form> 中的 name 或者 id 的值
  • fields (可选) 表单验证域 rulesmessages 集合,后续可通过 .addMethods(methods).removeMethods(...names) 进行变更
  • errorPlacement (可选) 错误信息位置
  • callback (可选) 表单提交 或 .validate() 调用后触发
  • classNames (可选) 验证正确或错误 class

参数示例

fields

fields: {
  email: {
    rules: 'required | isEmail | maxLength(32)',
    messages: "不能为空 | 请输入合法邮箱 | 不能超过 {{param}} 个字符"
  },
  phone: {
    rules: 'isPhone',
    messages: "手机号: {{value}} 不合法"
  }
}

注: emailphone 为表单 name 属性
rules :(必选) 一个或多个规则(中间用 | 分隔)
messages :(可选) 相对应的错误提示(中间用 | 分隔) {{value}} 为表单中的 value 值, {{param}}maxLength(32) 的参数

errorPlacement

errorPlacement: function (errorEl, fieldEl) {
  // 非 label 、radio 元素
  if (fieldEl.parentNode !== undefined) {
    fieldEl.parentNode.appendChild(errorEl);
  }
},

注: errorEl 为错误信息节点,fieldEl 为验证的表单节点 验证失败后,表单中会添加 valid-error , 错误信息中添加 valid-error-message 类名

callback

callback: function (result, error) {
  // 自定义逻辑
  if (errors) {
      // do something...
  }
}

注: result 验证结果
error 验证失败的错误集合

方法

  • 除返回值为 Boolean 类型的方法都支持链式调用

.validate() 手动验证

返回值为 Boolean
注: 默认使用 submit 按钮提交进行拦截验证,可手动调用 .validate() 调用验证所有定义过的元素

.validateByName(name) 通过 name 验证单个表单域

返回值为 Boolean

.preventSubmit() 阻止表单提交

.addMethods(methods) 自定义验证方法

如:

// checkbox 至少选择两项 方法
validator.addMethods({
  selectLimit: function (field, param) {
    // checkbox 至少选择两项
    var checkedNum = 0;
    for (var i = 0, elLength = field.el.length; i < elLength; i++) {
      if (field.el[i].checked) {
        checkedNum += 1;
      }
    }
    return checkedNum >= param;
  },
});

.addFields(fields) 动态添加 fields 方法

注:通过 .addFields(fields) 来动态新增一个或多个表单验证域

validator.addFields({
  userName: {
    rules: 'required | isRealName',
    messages: "不能为空 | 请输入真实姓名"
  }
});

.removeFields(...names) 移除 fields 方法

// 移除单个
validator.removeFields('userName');
// 移除多个
validator.removeFields('userName', 'email');

内置验证方法

如:

v.isEmail('[email protected]');
v.isPhone('170111222231');
  • required(param) 验证必填
  • isAbc(param) 验证字母数字下划线
  • isDate(param) 验证日期
  • isDecimal(param) 验证浮点数
  • isEmail(param) 验证邮箱
  • isInteger(param) 验证整数
  • isIp(param) 验证 ip 地址
  • isNumeric(param) 验证自然数
  • isPhone(param) 验证手机
  • isTel(param) 验证座机
  • isUrl(param) 验证URL
  • maxLength(param, length) 最大长度
  • minLength(param, length) 最小长度
  • greaterThan(param1, param2) 多于某个数
  • lessThan(param1, param2) 少于某个数
  • greaterThanDate(date1, date2) 大于某个日期
  • lessThanDate(date1, date2) 小于某个日期

LICENSE

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].