当前位置: 首页 > news >正文

js 正则表达式 验证 :页面中一个输入框,可输入1个或多个vid/pid,使用英文逗号隔开...

就是意思一个输入框里面,按VID/PID格式输入,VID和PID最大长度是4,最多50组

1、页面代码

 <el-form ref="ruleForm" :model="tempSet" :rules="rules" label-position="right">

        <!-- 最多 50组,每组9个字符加逗号分隔,是10个,最后一个不需要字符就是,就是499个 -->

        <el-form-item label="设备VID/PID" label-width="100px" prop="vpid" :error="errForm.vpid.error">

          <el-input id="vpid" v-model.trim="tempSet.vpid" placeholder="按VID/PID形式输入,最多输入50组,英文逗号分隔" maxlength="499" type="textarea" :rows="6" style="width: 358px;" />

        </el-form-item>

      </el-form>

2、非必填的正则

rules: {

        vpid: [

          { required: false, validator: validatorUsb, trigger: 'blur' }

        ]

      },

3、页面编写正则

如图这个位置 

4、代码如下:

  // 非必填项 正则校验

    var validatorUsb = (rule, value, callback) => {

      if (value) {

        //   一组VID/PID  逻辑处理

        var isViDVip = (function() {

          var regexp = /[\/]/;

          return function(value) {

            var valid = regexp.test(value);

            if (!valid) { // 首先必须是 xxxx/xxxx 最长4位 这种形式的字符,如果不是,返回false

              // _this.$message.error('按VID/PID格式输入')

              return false;

            }

            return value.split('/').every(function(num) {

              // 切割开来,每个都做对比,可以为0,可以小于等于255,但是不可以0开头的俩位数

              // 只要有一个不符合就返回false

              if (num.length > 4) {

                // _this.$message.error('VID和PID最大长度是4')

                return false;

              } else if (num === '') {

                // _this.$message.error('VID和PID若输入其中一个,另外一个不能为空')

                return false;

              }

              return true;

            });

          }

        }());

        // var test_vips = '123/234';

        // alert(isViDVip(test_vips)); // 返回true

        //  多组 VID/PID,VID/PID的正则处理,用逗号(,)隔开

        var test_vips = value;

        var isTrue = test_vips.split(',').every(function(vip) {

          return isViDVip(vip); // 先将字符串按照逗号分成数组,再校验就可以了

        });

        // alert(isTrue); // isTrue 返回true,上面的vid/pid 全部正确以逗号分隔 最多50组

        if (!isTrue || test_vips.split(',').length > 50) {

          return callback(new Error('按VID/PID格式输入,VID和PID最大长度是4,最多50组'))

        } else {

          return callback();

        }

      } else {

        return callback()

      }

    }

5、效果图搞定

 

http://www.lryc.cn/news/144135.html

相关文章:

  • 【算法与数据结构】112、LeetCode路径总和
  • ②matlab桌面和编辑器
  • 高亮img、pdf重点部分(html2canvas、pdfjs-dist、react-pdf)
  • 18.神奇导航菜单指示器
  • WPF+Prism+WebApi 学习总结
  • uniapp热更新
  • AUTOSAR从入门到精通-【应用篇】基于CAN协议的汽车尾气后处理诊断系统的软件开发(续)
  • mybatis plus新版代码生成器,类型转换处理器ITypeConvertHandler使用
  • python中的matplotlib画直方图(数据分析与可视化)
  • 【详解】文本检测OCR模型的评价指标
  • Python遥感图像处理应用篇038 GDAL 遥感图像特征提取(统计特征图)
  • 全局ID生成方式
  • c++之指针
  • JVM 访问对象的两种方式
  • yo!这里是Linux基础开发工具介绍
  • 本地组策略编辑器找不到怎么解决?| 解决windows home 版本隐藏本地组策略编辑器的问题 | 简单的介绍本地组策略编辑器
  • 将Spring boot 项目部署到tomcat服务艰难
  • 第十二章 ObjectScript - 命令
  • 在 CentOS 7 / RHEL 7 上安装 OpenSSL 1.1.x
  • 论文阅读_模型结构_LoRA
  • uniapp获取 pdf文件流 并展示
  • Linux(进程间通信)
  • Go的Gorm数据库操作错误WHERE conditions required
  • 基于java swing和mysql实现的仓库商品管理系统(源码+数据库+运行指导视频)
  • 6、css学习6(表格)
  • Ceph源码解析:PG peering
  • 解决jupyter notebook可以使用pytorch而Pycharm不能使用pytorch的问题
  • 对建造者模式理解
  • 回归预测 | MATLAB实现CSO-ELM布谷鸟算法优化极限学习机多输入单输出回归预测(多指标,多图)
  • 静态链接库和动态链接库的区别