# 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    | 是否为邮箱                 |



