# 使用默认的错误提示信息

如果没有定义任何的验证提示信息,系统会显示默认的错误信息,例如:

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方法获取的,未经过过滤器和获取器的处理