function limiting(rule, value, callback, maxlength) {
var len = 0
var j = 0
// len 为字节数,j 为字符数
for (var i = 0; i < value.length; i++) {
if (value.charCodeAt(i) > 127 || value.charCodeAt(i) === 94) {
len += 2
j++
} else {
len++
j++
}
if (len > maxlength) {
callback(new Error(`最多${maxlength}个字符`))
}
}
callback()
}
规则定义使用:
{
validator: function(rule, value, callback) { limiting(rule, value, callback, 20) },
trigger: ['blur', 'change']
}