# 使用默认的错误提示信息
如果没有定义任何的验证提示信息,系统会显示默认的错误信息,例如:
class User extends Validate
{
constructor(){
const rules = {
'user' : 'require|mail'
}
super(rules)
}
}
const data = {
'user' : '123456'
};
const vali = new User();
if(!vali.check(data)){
console.log(vali.getError())
}
会输出user不是有效的电子邮件地址
。
可以给user字段设置中文名,例如:
class User extends Validate
{
constructor(){
const rules = {
'user|用户名' : 'require|mail'
}
super(rules)
}
}
会输出用户名不是有效的电子邮件地址
。
# 单独定义提示信息
class User extends Validate
{
constructor(){
const rules = {
'user' : 'require|mail'
};
const message = {
'user.require' : '用户名必须填写',
'user.mail' : '用户名不是有效的电子邮件地址'
}
super(rules,message)
}
}
# 提示信息自定义别称
如果你写了一个公共的类,但是字段的名称各不相同,或者兼容多语言以及有一些自己的变量
class User extends Validate
{
constructor(){
const rules = {
'phone|手机' : 'require|mobile'
};
const message = {
'phone.require' : '{field}不可为空',
'phone.mobile' : '{field}格式错误,如有区号如:{example}请去除',
};
super(rules,message);
this.setAlias({
example : "+86 13122223333"
})
}
}
提示
此时{filed}
对应rules
字段中的手机
,{example}
对应setAlias
方法中的example
也可以在实例化后的方法中使用
const data = {
'phone' : '+86 18888888888'
};
const vali = new User();
vali.setAlias({
example : "+86 13122223333"
})
if(!vali.check(data)){
console.log(vali.getError())
}
最后输出手机格式错误,如有区号如:+86 13122223333请去除
提示
setField
的字段别称以及设置rule中|
后跟随的字段名字,均会被{field}替换
# 在错误消息中使用验证数据
有时候我们需要在错误消息中显示验证数据,来达到更清晰的错误提示,这个时候我们可以使用{:field}
来完成:
const v = Validate.make({
'name' : 'chs'
}, {
'name.chs' : '{:name}不是一个合法的中国名字'
})
v.check({ name : 'Abby' })
console.log(v.getError)
这个时候会输出Abby不是一个合法的中国名字
,错误消息中的{:name}
被验证数据中的name
的值给替换掉了。
请注意
这里使用的数据是原始验证数据,是通过getOriginalData
方法获取的,未经过过滤器和获取器的处理