QishuangWang / validator-form

✨一个使用简单,功能齐全的迷你表单验证工具函数库

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

validator-form

一个使用简单,功能齐全的迷你表单验证工具函数库。

Feature 🚀

  • 使用简单,学习成本几乎为零
  • 没有依赖其他第三方库,引入成本几乎为零
  • 测试用例覆盖率达 100%
  • 检验粒度更小,自由度更高
  • 全局统一管理、配置所有的正则策略
  • 良好的使用错误提示

TODO

  • 支持 npm 安装
  • 支持 TypeScript
  • 支持异步操作
  • 支持海量数据验证
  • 更丰富的 API
  • More...

Usage

  1. 直接将validators目录作为工具函数拷贝使用
  2. validators/strategys.js文件进行配置
  3. 引入validators/index.js中的函数validateValue进行使用

APIs

validateValue(values, strategys, isMessageString?)

// return
{
  isValid,
  message
}
  • values: <String | String[]> 需要校验的值,支持字符串、数组,必填参数
  • strategys: <String | String[]> 需要校验的值匹配的正则策略,支持字符串、数组,必填参数
  • isMessageString?: 是否以字符串的形式返回收集的 message,默认值:true,可选参数
  • isValid: <true | false> 是否校验成功
  • message: <String | Array> 收集校验不成功时对应的 message,返回类型取决于参数isMessageString的值

Example

  • strategy.js文件中配置正则策略:
export default {
  maxLength10: {
    regexp: /^[A-Za-z0-9]{1,10}$/,
    message: '字符长度不能超过10'
  },
  email: {
    regexp: /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/,
    message: '邮箱格式不正确'
  }
}
  • 使用validateValue进行校验
// 单条正则策略匹配单个值
validateValue('leeperleeper@@outlook.com', 'email');
validateValue('leeperleeper@@outlook.com', ['email']);
validateValue(['leeperleeper@@outlook.com'], 'email');
validateValue(['leeperleeper@@outlook.com'], ['email']);
//return
{
  isValid: false
  message: '邮箱格式不正确'
}


// 多条正则策略匹配单个值
validateValue('leeperleeper@@outlook.com', ['email', 'maxLength10'], false);
validateValue(['leeperleeper@@outlook.com'], [['email', 'maxLength10']], false);
// return
{
  isValid: false
  message: ['邮箱格式不正确', '字符长度不能超过10']
}

// error: 不可以传入两个长度不一样的数组,下面一条使用为❌错误栗子
validateValue(['leeperleeper@@outlook.com'], ['email', 'maxLength10']);


// 多条正则策略匹配多个值
validateValue(['leeperleeper@@outlook.com', 'leeperleeper@@'], [['email', 'maxLength10', 'email'], ['maxLength10']], false);

// return
{
  isValid: false
  message: [['邮箱格式不正确', '字符长度不能超过10', '邮箱格式不正确'], ['字符长度不能超过10']]
}

Test

git clone git@github.com:iyolee/validator-form.git
npm install
npm test
  • 行覆盖率(line coverage): 100%
  • 函数覆盖率(function coverage): 100%
  • 分支覆盖率(branch coverage): 100%
  • 语句覆盖率(statement coverage): 100%

More

Licence

MIT

About

✨一个使用简单,功能齐全的迷你表单验证工具函数库

License:MIT License


Languages

Language:HTML 48.2%Language:JavaScript 39.4%Language:CSS 12.5%