最近在做富文本编辑器。使用传统的rules,对含有emoji的文本计算长度有误。
{ max: 200, message: '问题描述不能超过200字符', trigger: 'blur' },
如果输入100多文字,加大量emoji的情况下。字符长度超出200,这时只靠rules去验证,会认为合法。不符合业务逻辑。
通过查询api发现。在rules中,可以写入验证函数。
// rules中设置validator函数。
{ validator: checkLength, trigger: 'blur' }
// 函数如下
let checkLength = (rule, value, callback) => {
if (value.length > 200) {
callback(new Error('问题描述不能超过200字符'));
} else {
callback();
}
};