inputWithChnEngNumSpecial: function () { let validator = (rule, value, callback) => { const reg = new RegExp("^[\u4e00-\u9fa5A-Za-z0-9-_]+$") if (!reg.test(value)) { callback(new Error("只可输入中文、大小写英文、数字、减号、下划线")) } else { callback() } } return { validator: validator, trigger: "blur" } }, 增加一个非空校验
时间: 2024-02-21 17:57:03 浏览: 116
你可以在 `validator` 函数中添加一个非空校验,来实现 `name` 字段的非空检查。以下是一个基于你给出的代码进行修改的示例:
```javascript
inputWithChnEngNumSpecial: function () {
let validator = (rule, value, callback) => {
const reg = new RegExp("^[\u4e00-\u9fa5A-Za-z0-9-_]+$");
if (!value) {
callback(new Error("请输入名称"));
} else if (!reg.test(value)) {
callback(new Error("只可输入中文、大小写英文、数字、减号、下划线"));
} else {
callback();
}
};
return { validator: validator, trigger: "blur" };
},
```
在上面的代码中,我们在 `validator` 函数中添加了一个非空校验,如果 `value` 为空,就会返回一个新的错误信息 `"请输入名称"`。注意,这个非空校验应该放在正则表达式的检查之前,否则可能会出现错误。
如果你希望同时在输入框失去焦点时进行校验,可以使用 `trigger: "blur"` 来指定触发校验的事件类型,也可以根据实际需要改为其他类型,例如 `trigger: "change"`。
相关问题
//校验手机 checkPhone(rule, value, callback){ if (value) { let isPhone = /^((0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/; let reg = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/; if (!reg.test(value) && !isPhone.test(value) && value) { callback(new Error("请输入正确的手机号")); } else { callback(); } } else { callback(); } }, rules: { telephone:[ { validator:(rule, value, callback) => checkPhone(rule, value, callback),trigger: "change" }, ] }, 怎么把checkPhone方法放到rules: { telephone:[]}
可以将checkPhone方法直接放到rules: { telephone:[] } 中的数组中,作为一个单独的验证器对象。具体代码如下:
```
rules: {
telephone: [
{
validator: (rule, value, callback) => {
if (value) {
let isPhone = /^((0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
let reg = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/;
if (!reg.test(value) && !isPhone.test(value) && value) {
callback(new Error("请输入正确的手机号"));
} else {
callback();
}
} else {
callback();
}
},
trigger: "change"
}
]
}
```
这样就可以在使用该验证器时直接调用checkPhone方法了。
validator: (rule, value, callback) => { if (this.userInfo.timeOfEntry) { if (new Date(this.userInfo.timeOfEntry) > new Date(value)) { callback(new Error('转正时间不能小于入职时间')) return } } callback() }代码解释
这段代码是一个校验函数,通常用于表单验证的规则中。以下是对代码的解释:
1. `validator: (rule, value, callback) => { ... }`:这是一个函数,接收三个参数:`rule` 是当前校验规则的配置,`value` 是当前表单项的值,`callback` 是一个回调函数用于返回校验结果。
2. `if (this.userInfo.timeOfEntry) { ... }`:这是一个条件判断语句,检查 `this.userInfo.timeOfEntry` 是否存在。
3. `new Date(this.userInfo.timeOfEntry)` 和 `new Date(value)`:这是将日期字符串转换为 JavaScript 的 `Date` 对象。
4. `new Date(this.userInfo.timeOfEntry) > new Date(value)`:这是比较两个日期对象的大小,判断入职时间是否晚于转正时间。
5. `callback(new Error('转正时间不能小于入职时间'))`:如果转正时间小于入职时间,则调用 `callback` 并传递一个带有错误消息的 `Error` 对象。
6. `callback()`:如果校验通过,则调用 `callback`。不传递任何参数表示校验成功。
该校验函数通常用于表单验证的规则配置中,例如使用 Element UI 或其他 UI 框架进行表单验证时。在表单提交或字段值变化时,会触发该校验函数进行相应的校验逻辑。根据校验结果,可以在界面上显示错误提示或执行其他操作。
请注意,上述代码片段中的 `this.userInfo` 表示组件中的一个数据属性,可能是一个包含用户信息的对象。确保在使用该校验函数之前,`this.userInfo` 已经被正确地初始化和赋值。
阅读全文