133 lines
3.3 KiB
Markdown
133 lines
3.3 KiB
Markdown
|
# 校验工具使用说明
|
|||
|
|
|||
|
## 概述
|
|||
|
|
|||
|
`validator.js` 是一个通用的表单校验工具,提供了常用的校验规则和方法,遵循高内聚低耦合的设计原则。
|
|||
|
|
|||
|
## 引入方式
|
|||
|
|
|||
|
```javascript
|
|||
|
// 完整引入
|
|||
|
import validator from '@/utils/validator.js';
|
|||
|
|
|||
|
// 按需引入
|
|||
|
import { createValidators, validators, REGEX_PATTERNS } from '@/utils/validator.js';
|
|||
|
```
|
|||
|
|
|||
|
## 使用方法
|
|||
|
|
|||
|
### 1. 在Element UI表单中使用校验规则
|
|||
|
|
|||
|
```javascript
|
|||
|
export default {
|
|||
|
data() {
|
|||
|
return {
|
|||
|
form: {
|
|||
|
mobile: '',
|
|||
|
email: '',
|
|||
|
name: ''
|
|||
|
},
|
|||
|
// 表单校验规则
|
|||
|
formRules: {
|
|||
|
// 手机号校验(必填)
|
|||
|
mobile: createValidators.mobile(true, '请输入正确的手机号码'),
|
|||
|
|
|||
|
// 邮箱校验(非必填)
|
|||
|
email: createValidators.email(false, '请输入正确的邮箱地址'),
|
|||
|
|
|||
|
// 中文姓名校验
|
|||
|
name: createValidators.chineseName(true, '请输入正确的中文姓名'),
|
|||
|
|
|||
|
// 组合使用多个校验规则
|
|||
|
description: [
|
|||
|
createValidators.required('请输入描述'),
|
|||
|
createValidators.length(10, 200, '描述长度为10-200个字符')
|
|||
|
]
|
|||
|
}
|
|||
|
};
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
### 2. 直接校验(非表单场景)
|
|||
|
|
|||
|
```javascript
|
|||
|
import { validators } from '@/utils/validator.js';
|
|||
|
|
|||
|
// 校验手机号
|
|||
|
const isValidMobile = validators.isMobile('13812345678'); // true
|
|||
|
|
|||
|
// 校验邮箱
|
|||
|
const isValidEmail = validators.isEmail('test@example.com'); // true
|
|||
|
|
|||
|
// 校验中文姓名
|
|||
|
const isValidName = validators.isChineseName('张三'); // true
|
|||
|
```
|
|||
|
|
|||
|
### 3. 使用正则表达式
|
|||
|
|
|||
|
```javascript
|
|||
|
import { REGEX_PATTERNS } from '@/utils/validator.js';
|
|||
|
|
|||
|
// 直接使用正则
|
|||
|
const mobileRegex = REGEX_PATTERNS.mobile;
|
|||
|
const isValid = mobileRegex.test('13812345678');
|
|||
|
```
|
|||
|
|
|||
|
## 可用的校验规则
|
|||
|
|
|||
|
### createValidators(用于Element UI表单)
|
|||
|
|
|||
|
- `mobile(required, message)` - 手机号校验
|
|||
|
- `email(required, message)` - 邮箱校验
|
|||
|
- `chineseName(required, message)` - 中文姓名校验
|
|||
|
- `required(message)` - 必填校验
|
|||
|
- `length(min, max, message)` - 长度校验
|
|||
|
|
|||
|
### validators(直接校验方法)
|
|||
|
|
|||
|
- `isMobile(mobile)` - 校验手机号
|
|||
|
- `isEmail(email)` - 校验邮箱
|
|||
|
- `isChineseName(name)` - 校验中文姓名
|
|||
|
|
|||
|
### REGEX_PATTERNS(正则表达式)
|
|||
|
|
|||
|
- `mobile` - 手机号:1开头的11位数字
|
|||
|
- `email` - 邮箱地址
|
|||
|
- `idCard` - 身份证号
|
|||
|
- `chineseName` - 中文姓名
|
|||
|
- `number` - 数字
|
|||
|
- `positiveInteger` - 正整数
|
|||
|
|
|||
|
## 扩展校验规则
|
|||
|
|
|||
|
如需添加新的校验规则,请在 `validator.js` 文件中:
|
|||
|
|
|||
|
1. 在 `REGEX_PATTERNS` 中添加新的正则表达式
|
|||
|
2. 在 `createValidators` 中添加对应的表单校验方法
|
|||
|
3. 在 `validators` 中添加对应的直接校验方法
|
|||
|
|
|||
|
示例:
|
|||
|
```javascript
|
|||
|
// 添加新的正则
|
|||
|
REGEX_PATTERNS.newRule = /^your-regex$/;
|
|||
|
|
|||
|
// 添加表单校验方法
|
|||
|
createValidators.newRule = function(required = true, message = '默认错误信息') {
|
|||
|
const rules = [];
|
|||
|
if (required) {
|
|||
|
rules.push({ required: true, message: '请输入内容', trigger: 'blur' });
|
|||
|
}
|
|||
|
rules.push({
|
|||
|
pattern: REGEX_PATTERNS.newRule,
|
|||
|
message,
|
|||
|
trigger: 'blur'
|
|||
|
});
|
|||
|
return rules;
|
|||
|
};
|
|||
|
|
|||
|
// 添加直接校验方法
|
|||
|
validators.isNewRule = function(value) {
|
|||
|
return REGEX_PATTERNS.newRule.test(value);
|
|||
|
};
|
|||
|
```
|