https://github.com/appletjs/shiver
https://github.com/appletjs/shiver
Last synced: 12 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/appletjs/shiver
- Owner: appletjs
- Created: 2018-09-06T12:30:05.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-09-06T12:33:16.000Z (almost 8 years ago)
- Last Synced: 2025-06-22T12:07:32.287Z (12 months ago)
- Language: JavaScript
- Size: 18.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
## create(path,validators)
> **create('数据路径').校验器(参考数据, 异常信息)**
该方法生成一个**规则函数**用于校验数据;该规则函数包含了一系列**校验器**,
所有的校验器返回规则函数本身,便于链式调用。
参数说明:
- **path** `string` 数据路径
- **validators** `Object` 规则校验器
### 数据路径
数据路径指的是用于在被校验数据内寻值的键名,比如:
- 要校验当前请求方法,数据路径是 'method';
- 要检验通过 GET 方法提交到服务器内的数据,数据路径是 'query.key';
### 使用校验器
规则一旦创建,如果没有使用校验器,在验证数据的时候会忽略之。
```js
const rule = create('method') // 创建规则
.inside(['POST', 'PUT', 'PATCH'], 'error message') // 使用校验器
.existence('error message')// 使用校验器
// 还可以使用其它的校验器
// 使用规则
try {
return rule({method: 'DELETE'})
} catch (err) {
console.log(err.name) // => maybe 'ShiverError'
console.log(err.path) // => 'method'
console.log(err.value) // => 'DELETE'
return false
}
```
规则属性
* **$path** `string`
* $value `mixed`
规则方法
* **$use(name: string, validator: function): rule**
* **$batch(validators: object): rule**
内置的校验器
- **accordance(data: any, message?: string)** 是否与给出的值相等
- **difference(data: any, message?: string)** 是否与给出的值不一致
- **existence(message?: string)** 是否存在值
- **inside(data: array|string, message?: string)** 是不是给出的数组或字符串的一部分
- **empty(message?: string)** 是不是为空数据
- **falsy(message?: string)** 是不是假值
- **truthy(message?: string)** 是不是真值
- **match(reg: RegExp, message?: string)** 能够通过给出的正则表达式校验
- **startsWith(str: string, message?: string)** 是否以给出的字符串开头
- **endsWith(str: string, message?: string)** 是否以给出的字符串结尾
- **ascii(message?: string)** 是不是全 ASCII 字符串
- **chinese(message?: string)** 是不是全中文字符
- **md5(message?: string)** 是不是 MD5 字符串
- **lowercase(message?: string)** 是不是全小写
- **uppercase(message?: string)** 是不是全大写
- **ip(version?: 4|6|'4'|'6', message?: string)** 是不是IP地址
- **phone(message?: string)** 是不是手机号码
- **mail(message?: string)** 是不是邮箱
- **dataURI(message?: string)** 是不是 data-uri 数据
- **base64(message?: string)** 是不是使用 base64 加密的字符串
- **numeric(message?: string)** 是不是数字
- **int(message?: string)** 是不是整数
- **safeInt(message?: string)** 是不是安全整数
- **yesterday(message?: string)** 是不是昨天
- **today(message?: string)** 是不是今天
- **tomorrow(message?: string)** 是不是明天
- **after(date?: string|number|Date, message?: string)** 是不是在指定时间之后
- **before(date?: string|number|Date, message?: string)** 是不是在指定时间之前
## custom(name[, validator])
- name `string` 检验器名称
- validator 可选
- 值为 null 时,删除自定义的
- 未指定时,返回检验器
- 值为函数时,设置校验器
## execute(rules, object, detail)
执行规则,根据参数 detail,做出不同的返回值。
- **rules** `array` 规则列表
- **object** `object` 被校验的数据对象
- **detail** `boolean` 是否返回校验详情