首页 > 其他分享 >Vue 之 element 输入框验证及常用正则

Vue 之 element 输入框验证及常用正则

时间:2023-01-12 09:33:16浏览次数:50  
标签:Vue callback value replace 输入框 trigger let element 输入

  • 1.控制输入位数

    限制输入为10位,这种方式可以使输入框中输入10位后不能输入后续内容
    因为number输入框自动将最后一位小数点忽略不计,因此“.”,"2.","3.3."这三种情况均为正确的输入

    <el-form-item label="渠道:" prop="channelName">
      <el-input v-model="formData.channelName" :maxlength="10" placeholder="请输入渠道名称"></el-input>
    </el-form-item>
    
    rules:{
           channelName:[
             {required:true,message:'渠道名称不能为空',trigger:'change'},
           ],
    }

    2.控制小数输入位数

    input 设置类型为number,step控制步长,正则表达式匹配输入的格式必须为xxx.xxx.
    注意,此种方法无法区分不输入的情况,故将提示信息合并为一个。统一触发方式为change

    <el-form-item label="短信单价:" prop="price" class="form-price">
        <el-input type="number" step="0.001" v-model="formData.price" placeholder="请输入"></el-input>
    </el-form-item>
    
    //js
    <script>
        let checkPrice = (rule,value,callback)=>{
            if(value){
              let rgx = /^d+(.d{1,3})?$/;
              if(value.match(rgx)==null){
                return callback(new Error('请检查输入格式,不能为空,且最多三位小数'))
              }else{
                callback();
              }
            }
          };
          rules:{
             price:[
               {required:true,message:'请检查输入格式,不能为空,且最多三位小数',trigger:'change'},
               {validator:checkPrice,trigger:'change'}
             ]
          },
    </script>

    3.验证时间控件选择的时间是否在某个范围

       let checkSendTime =  (rule, value, callback) => {
            let hour = value ? value.getHours() :0;
            if (value !== "") {
              if (hour < 8 || hour > 21) {
                return callback(new Error('请选择8:00~22:00之间发送'));
              } else {
                callback();
              }
            }
          };
          sendTime:[
                {type:'date',required: true, message: '发送时间不能为空', trigger: 'blur'},
                {validator:checkSendTime,trigger:'blur'}
              ]

    一些常用的正则

    1.input中只能输入数字 0-9

    <el-input
                      v-model.trim="form.银行账号"
                      placeholder="请输入"
                      style=" 200px;"
                      @input="inputChange"
                    ></el-input>
     
    <script>
    inputChange() {
          this.form.银行账号 = this.form.银行账号.replace(/[^d]/g, '')     // 或者写成 /[^0-9]/g
        }
    </script>

    2.去除空格

    把获取的input框中的值的空格去掉:

    let text = el.currentTarget.innerText.replace(/s+/g, '')    // + 表示1个或多个空格

    3.去除字符串两端的空格

    this.inputValue = this.inputValue.trim()

    4.清除“数字”和“.”以外的字符

    'ss(ini123.ssss'.replace(/[^d.]/g,'')    // 结果是"123."

    5.第一个数是.就替换成空字符串

    ".1213.22323".replace(/^./g, '')   // 结果:"1213.22323"

    6.把最后的.都去掉

    '瑟瑟发抖.....'.replace(/.*$/g,'')   // "瑟瑟发抖"
    
    '瑟瑟发抖.....'.replace(/.*$/g,'.')   // "瑟瑟发抖."  // 只保留一个点
    
    "sfassadfs....sfsadfsa....".replace(/.{2,}/g, '.')    //  只保留一个点,清除多余的
    
    "......sss....sss...ssss...ssss".replace(/./g, '')  // 把所有点都清除

    7.匹配正整数或正小数

    /^d+(.{0,1}d+){0,1}$/         
    /^[0-9]+([.]{1}[0-9]{1,2})?$/   // 这个比较靠谱小数是0位或者1位

    8.匹配11位手机号

    /^[1]+[0-9]{10}$/

    9.匹配固定电话

    /^0d{2,3}-d{7,8}$/

    10.港澳居民来往内地通行证号码

    /^[0-9a-zA-Z][-]{1}[0-9]{6}[-]{1}([0-9a-zA-Z])$/

    11.文件名只能包含中文、英文、数字包括下划线

    /^[u4E00-u9FA5A-Za-z0-9_.]+$/

    12.条形码要求大写字母、数字

    /^[0-9A-Z]+$/

    13.匹配正整数不包括0

    /^[1-9]d*$/

    14.匹配正整数包括0

    /^d+$/

    15.匹配0-20位的中文

    /^[u4e00-u9fa5]{0,20}$/

标签:Vue,callback,value,replace,输入框,trigger,let,element,输入
From: https://www.cnblogs.com/amujoe/p/17045528.html

相关文章

  • Vue 中 Promise 的then方法异步使用及async/await 异步使用总结
    转载请注明出处:1.Promise的then方法使用then方法是 Promise中处理的是异步调用,异步调用是非阻塞式的,在调用的时候并不知道它什么时候结束,也就不会等到他......
  • Vue.js 双向数据绑定原理
    Vue双向数据绑定原理涉及到Vue中的响应式系统和模板编译。在Vue中,响应式系统是通过Object.defineProperty或者Proxy来实现的。当Vue创建一个Vue实例时,它会遍......
  • 【Java】Vue-Element-Admin 嵌入Druid监控面板
     我看到若依做了Druid面板的嵌入,我自己的项目干脆也做一个 一、后台服务SpringBoot:Druid配置项:spring:datasource:url:jdbc:mysql://127.0.0.1:3308/tt?s......
  • vue.js 虚拟DOM
    Vue.js使用虚拟DOM来优化更新流程。虚拟DOM是一个JavaScript对象,它可以描述一个真实的DOM结构,并在数据发生变化时重新渲染。当Vue组件的数据发生变化时,Vue会......
  • day07-Vue04
    Vue0412.Vue2脚手架模块化开发目前开发模式的问题:开发效率低不够规范维护和升级,可读性比较差12.1基本介绍官网地址什么是VueCli脚手架12.2环境配置,搭建项目......
  • Vue.js 响应式原理
    Vue.js是一个渐进式的JavaScript框架,它使用了响应式系统来维护应用程序的状态。响应式系统是Vue.js的核心部分,它使得应用程序能够自动地更新视图,当数据发生变化时。在Vue.......
  • 10个提高开发效率的Vue3常用插件(快来收藏)
    本篇文章给大家总结分享几个好用的 Vue 插件,可以帮助开发者提高开发效率、解决移动端各种滚动场景需求,希望对大家有所帮助!1、vue-multiselect-nextVue.js 的通用选择/......
  • 【EasyUI篇】Datebox日期输入框组件
    微信公众号:​​程序yuan​​关注可了解更多的教程。问题或建议,请公众号留言;​​查看-->全套EasyUI示例目录​​23.Datebox日期输入框组件     JSP文件<%--Created......
  • 【转】前后端分离项目(vue+springboot)集成pageoffice实现在线编辑office文件
    前后端分离项目下使用PageOffice原理图集成步骤前端vue项目在您Vue项目的根目录下index.html中引用后端项目根目录下pageoffice.js文件。例如:<scripttype="text/......
  • Win10+Vue环境配置
    发现前年写的代码是答辩,决定试试Vue1.下载npmnpm 是 Node.js 的包管理工具,用来安装各种Node.js的扩展。下载地址安装的时候什么选项都不用勾选。2.修改扩展......