@jypj/validate-control
Version:
一个简单校验器,用于验证传入的数据是否符合要求
89 lines (73 loc) • 2.93 kB
Markdown
# validate-control
一个简简单单的校验器
## 使用说明
使用前需要先`new`一个实例出来,然后使用`validate`函数进行数据校验,实例内部有一个`pass`的属性,当这个属性为`true`时,即校验通过。
`validate`的函数签名如下
```js
/**
* 校验函数,传入rule 以及 错误提示信息即可
* @param {string} rule - 校验规则,内部已集成一些校验可以调用
* @param {string} error_msg - 错误提示信息
* @param {type} props - 当内部集成的函数需要额外参数,通过此参数传入
* @return {ValidateControl} 返回实例
*/
validate(rule = null, error_msg = null,props) : class ValidateControl()
```
## 使用例子
### 校验单个值
```js
const validateControl = new ValidateControl('13022222222')
validateControl.validate('isMobile','请输入正确的手机号码')
// 校验通过
if (validateControl.pass){
// ...
}
```
### 校验多个值
如果需要校验多个数据的情况下,插件内部有一个`value`函数,在这里可以重新设置插件内部的值。
使用例子如下:
```js
const validateControl = new ValidateControl('13022222222')
validateControl.validate('isMobile','请输入正确的手机号码')
validateControl.value('130xxxxxxxx')
validateControl.validate('isMobile','请输入正确的手机号码')
// 校验通过
if (validateControl.pass){
// ...
}
```
**在这种多数据校验的情况下,如果上一个数值不通过,则不会执行下面的校验,会直接返回错误**
### 链式调用
```js
const validateControl = new ValidateControl('13022222222')
.validate('isMobile','请输入正确的手机号码')
.value('130xxxxxxxx')
.validate('isMobile','请输入正确的手机号码')
// 校验通过
if (validateControl.pass){
// ...
}
```
### 需要额外传输参数时
```js
const validateControl = new ValidateControl('13022222222')
.validate('isRegExp','请输入正确的手机号码',/^(13[0-9]{1}|14[5|7|9]{1}|15[0-3|5-9]{1}|166|17[0-3|5-8]{1}|18[0-9]{1}|19[8-9]{1}){1}\d{8}$/)
// 校验通过
if (validateControl.pass){
// ...
}
```
## 内部集成的校验规则
| 调用名 | 简介 |
| ------------ |-----------------------|
| isMobile | 是否为手机号码 |
| isRequired | 是否为空,支持对象,数组,数字为0的也为空 |
| isIdCard | 是否为身份证号码 |
| isRegExp | 自定义正则校验 |
| isMoneyFloat | 是否为最多两位小数点的金额 |
| isExternal | 是否为外链(携带http / https) |
| isChinese | 是否全为中文 |
| isEmail | 是否为邮箱 |
| isBankCard | 是否为银行卡号(16-19位纯数字) |
| isLetter | 是否全为字母 |
| isAlphanumeric | 是否为字母+数字(不含特殊字符) |