VUE3+elementPlus 之 Form表单校验器 之 字符长度校验

需求:校验字符长度,超过后仍可输入,error提示录入字符数与限制字符数

校验字符长度:

/**
 * 检验文字输入区的长度
 * @param {*} rule                输入框的rule 对象,field:字段名称
 * @param {*} value               输入框的内容
 * @param {*} callback            回调函数
 * @param {*} textLengthRules     文本长度校验规则对象, key:字段名称,value:字段允许最大长度
 * @returns
 */
export function validTextField(rule: any, value: any, callback: any, textLengthRules: any) {
   
  if (!value) {
   
    callback();
    return;
  }
  const field = rule.field;
  const arr = field.split(".");
  // 表单列表内容校验
  if (arr.length > 0) {
   
    const len = textLengthRules[arr[0]][arr[arr.length - 1]];
    if (value.length > len) {
   
      callback(new Error(`${
     value.length}/${
     len} 内容输入超出范围`));
      return;
    }
  }

  // 支持字段校验
  if (textLengthRules?.[field] && value.length > textLengthRules[field]) {
   
    callback(new Error(`${
     value.length}/${
     textLengthRules[field]} 内容输入超出范围`));
    return;
  }
  callback();
}

组件内使用:

const textLengthRules = {
   
  num: 15
};
const validTextLength = (rule: any, value: any, callback: any) => {
   
  validTextField(rule, value, callback, textLengthRules);
};
rules: {
   
	num: [{
    validator: validTextLength }],
}

页面效果:
在这里插入图片描述

相关推荐

  1. vue3+element-plus 校验和循环form校验

    2024-02-01 06:50:01       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-01 06:50:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-01 06:50:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-01 06:50:01       82 阅读
  4. Python语言-面向对象

    2024-02-01 06:50:01       91 阅读

热门阅读

  1. pnpm、npm、yarn 包管理工具

    2024-02-01 06:50:01       60 阅读
  2. Linux crond 引发的僵尸进程

    2024-02-01 06:50:01       60 阅读
  3. 图像的拉普拉斯变换实现

    2024-02-01 06:50:01       48 阅读
  4. opencv笔试题案例

    2024-02-01 06:50:01       48 阅读
  5. Redis中间件加固策略,防止数据泄露

    2024-02-01 06:50:01       45 阅读
  6. 计算机视觉:机器的“眼睛”

    2024-02-01 06:50:01       52 阅读