Elementui el-input 输入框校验以及表单校验_elementui input校验-程序员宅基地

技术标签: elementUI  前端  vue.js  javascript  

一. 常用的 element-ui el-input 输入框

1. 过滤字母e,在js中属于数字,但是正则匹配 \d 是拦不住字母e 的
<el-input type="number" placeholder="请输入" min="1" onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode || event.which))) || event.which === 8" v-model.number="count"></el-input>
2. 只能输入正整数
<el-input type="number" placeholder="请输入" min="1" oninput ="value=value.replace(/[^\d]/g,'')"  v-model.number="count"></el-input>
3. 只允许输入数字和小数 / 数字和空格
oninput ="value=value.replace(/[^0-9.]/g,'')"
oninput ="value=value.replace(/^[\d\s]+$/g,'')"

4. 只允许输入正整数且不能以0开头

方法-<el-input
  v-model="scope.row.weight"
  oninput="value = Number(value) || 0"
>
方法二:
<el-input
  v-model="scope.row.weight"
  oninput="value=value.replace(/\D|^0/g, '')"
>
方法三:
<el-input
  v-model="scope.row.weight"
  oninput="value=value.replace(/[^\d]|^[0]/g, '')"
>
4. 允许输入小数点后几位
// 保留一位小数
oninput="if(isNaN(value)) { value = parseFloat(value) } if(value.indexOf('.')>0){value=value.slice(0,value.indexOf('.')+2)}" 
 
// 若需要保留N位小数,则把2 改为 1 + n即可
5. 设置范围,最大值,最小值
<el-input min="0" max="100" type="number" @input="numberChange($event, 100)" @change="numberChange($event, 100)" onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode || event.which))) || event.which === 8" v-model.number="count"></el-input> 

numberChange (val, max) {
    
   this.$nextTick(() => {
    
      this.count = Math.min(parseInt(val), max)
    })
}
6. form 表单中校验输入框只能输入数字和两位小数
rules: {
    
        giveHour: [
          {
     required: true, message: '请输入客户退费金额', trigger: 'blur' },
          {
     pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, message: '请输入正确额格式,可保留两位小数' }
        ]
      }

7. 禁止 / 只允许 输入中文

onkeyup="this.value=this.value.replace(/[\u4E00-\u9FA5]/g,'')"
onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"

8. 只允许输入数字和英文

<el-input
	 v-model.trim="form.userNumber"
	 placeholder="请输入用户编号"
	 clearable
	 onkeyup="this.value=this.value.replace(/[^\w]/g,'')"
></el-input>

9. 禁止输入特殊字符

<el-input oninput="this.value=this.value.replace(/[^u4e00-u9fa5w]/g,'')"></el-input>

10. 只允许输入英文

<el-input oninput = "value=value.replace(/[^\a-\z\A-\Z]/g,'')"></el-input>

11. 常见表单校验

校验方法可以封装到 util.js 里面

// utils.js

// 全局函数
export function validateMobile(str) {
    
  // 检查手机号码格式
  return /^((13[0-9])|(14[5-9])|(15([0-3]|[5-9]))|(16[6-7])|(17[1-8])|(18[0-9])|(19[1|3])|(19[5|6])|(19[8|9]))\d{8}$/.test(
    str,
  );
}

export function validateEmail(str) {
    
  // 检查邮箱格式
  return /^([A-Za-z0-9_\-.])+@([A-Za-z0-9_\-.])+\.([A-Za-z]{2,4})$/.test(str);
}

export function validateBankCard(str) {
    
  // 检查银行卡
  return /^[1-9]\d{9,29}$/.test(str);
}


export function validatePhone(str) {
    
  // 检查电话格式
  return /^(0\d{2,4}-)?\d{8}$/.test(str);
}

export function validateQQ(str) {
    
  // 检查QQ格式
  return /^[1-9][0-9]{4,}$/.test(str);
}

// 检查验证码格式
export function validateSmsCode(str) {
    
  return /^\d4$/.test(str);
}
// 校验 URL
export function validURL(url) {
    
  const reg =
    /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
  return reg.test(url)
}

// 校验特殊字符
export function specialCharacter(str) {
    
  const reg = new RegExp(
    // eslint-disable-next-line quotes
    "[`~!@#$^&*()=|{}':;',\\[\\]<>《》/?~!@#¥……&*()——|{}【】‘;:”“'。,、? ]"
  )
  return reg.test(str)
}

12. 输入非数字组合(登录账号6-16位)

// 非纯数字非纯字母 /^(?![0-9]+$)[0-9A-Za-z|a-zA-Z]{6,16}$/
    let userNameReg = /^(?![0-9]+$)[0-9A-Za-z|a-zA-Z]{6,16}$/;
      if (!userNameReg.test(form.userName)) {
    
        this.$message.warning('请输入6-16位的非纯数字登录账号~');
        return false;
      }

13. 只允许输入中文,英文,数字 / 空格 / 小数点

<el-input oninput = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')"></el-input>
<el-input oninput = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\ ]/g,'')"></el-input>
<el-input oninput = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')"></el-input>

14. 空格校验

// 去除所有的空格:
<el-input oninput = "value=value.replace(/\s*/g,"")"></el-input>

// 去除两头的空格:
方法一:<el-input oninput = "value=value.replace(/^\s*|\s*$/g,"")"></el-input>
方法二:<el-input v-model.trim=""></el-input>

// 去除左侧的空格:
<el-input oninput = "value=value.replace(/^\s*/g,"")"></el-input>
  
// 去除右侧的空格:
<el-input oninput = "value=value.replace(/(\s*$)/g,"")"></el-input>


Tips: 最近测试给提了个bug,window 系统电脑,使用 oninput 方法进行输入框正则校验,如果疯狂进行输入的话会出现当前输入框的双向绑定失效,导致输入框无法正常输入值。这时候推荐使用 @input 方法可以避免这个方法,还有一个办法是失焦的时候重新进行一次赋值操作也可以解决。mac系统没有出现这个问题…

持续更新中,欢迎大家留言交流!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44980732/article/details/115219944

智能推荐

python入门教程完整版(懂中文就能学会)-Python入门教程完整版(懂中文就能学会)...-程序员宅基地

文章浏览阅读48次。不过小编的内心是强大的,网友虐我千百遍,我待网友如初恋,因为今天又给大家带来了干货,Python入门教程完整版,完整版啊!完整版!言归正传,小编该给大家介绍一下这套教程了,希望每个小伙伴都沉迷学习,无法自拔第一阶段:该阶段首先通过介绍不同领域的三种操作系统,操作系统的发展简史以及Linux系统的文件目录结构让大家对Linux系统有一个简单的认识,同时知道为什么要学习Linux命令。然后我们会正式学..._懂中文就能学会python

JAVA基础面试题-程序员宅基地

文章浏览阅读778次,点赞17次,收藏23次。(2)当我们试图把某个类的对象当成 HashMap的 key,或试图将这个类的对象放入 HashSet 中保存时,重写该类的equals(Object obj)方法和 hashCode() 方法很重要,而且这两个方法的返回值必须保持一致:当该类的两个的 hashCode() 返回值相同时,它们通过 equals() 方法比较也应该返回 true。简单来说,用户进程在发起一个IO操作以后,必须等待IO操作的完成,只有当真正完成了IO操作以后,用户进程才能运行,BIO方式适用于连接数目比较小且固定的架构。

RunTimeError:element 0 of tensors does not require grad and does not have a grad_fn_runtimeerror: element 0 of tensors does not requir-程序员宅基地

文章浏览阅读2.3k次。这个错误源于Pytorch对Tensor进行 backward() 自动求导时,该Tensor的requires_grad为False,requires_grad参数指定是否记录对Tensor的操作以便计算梯度。在创建Tensor时该参数默认为False,需要手动设置如下。也可以通过loss.requires_grad_(True)设置。_runtimeerror: element 0 of tensors does not require grad and does not have a

探索TensorFlow实现的DCGAN图像补全:一个创新的深度学习项目-程序员宅基地

文章浏览阅读709次,点赞17次,收藏10次。探索TensorFlow实现的DCGAN图像补全:一个创新的深度学习项目项目地址:https://gitcode.com/bamos/dcgan-completion.tensorflow在这个数字时代,图像处理和生成技术已经成为了一个炙手可热的研究领域。DCGAN-Completion.TensorFlow是一个由Bamos开发的项目,它利用了深度卷积生成对抗网络(DCGAN)来实现图像的..._defussion模型图像补全

selenium分布式部署-程序员宅基地

文章浏览阅读399次。一、下载jar包:selenium-server-standalone-3.9.1.jar,放到和chromedriver同级目录二、cmd切换到selenium-server-standalone包所在目录,执行java-jarselenium-server-standalone-3.9.1.jar-rolehub,开启hub集线器,hub可以理解为一个中转点,管理各个节点的注册和状..._selenium-server-standalone-3.9.1.jar

Android OkHttp3 上传多张图片_android okhttp3 多图上传-程序员宅基地

文章浏览阅读1.7w次,点赞10次,收藏20次。经过实践,android与php交互,已经成功搞定!一、Android 端 /** * 上传文件及参数 */ private void sendMultipart(){ File sdcache = getExternalCacheDir(); int cacheSize = 10 * 1024 * 1024; /_android okhttp3 多图上传

随便推点

基于SSM的网上选课系统--79766(免费领源码+数据库)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案-程序员宅基地

文章浏览阅读1.4k次,点赞47次,收藏42次。本设计主要实现集人性化、高效率、便捷等优点于一身的网上选课系统,完成系统首页、个人资料、用户管理(管理员、教师用户、学生用户)班级管理、课程分类、课程信息、学生选课、课程成绩、通知公告等功能模块。_基于ssm的网上选课系统

SD卡启动详解_量产卡 启动卡-程序员宅基地

文章浏览阅读2.5k次。一、存储设备的介绍1、主流的外部存储器介绍内存和外存的区别:RAM可以随机访问,以字节为单位,可以操作每一个地址。但是ROM就不可以了,只能以块为单位进行访问。RAM掉电数据丢失,而ROM则不会,掉电后数据是保存的。2、磁盘、CD、软盘、硬盘、光盘的区别与联系存储原理为磁存储,缺点是读写速度、可靠性等问题,优点是技术成熟、加个便宜,广泛使用在桌面电脑中,在嵌入式设备中几乎不使用。..._量产卡 启动卡

J2ME好网址-程序员宅基地

文章浏览阅读544次。http://www.j2medev.com/index.htmlhttp://www.j2medev.com/bbs/index.asp?boardid=1http://www.webstudy8.com/web/jsp/403/069316073210831.html http://lib131451.ku.8844.com/ 手机数据库http://www.pcppc.c

mybatis控制台打印Sql的两种方式_mybatis 打印sql-程序员宅基地

文章浏览阅读6.2k次,点赞2次,收藏3次。第一种方式maven工程下pom.xml 添加 log4j日志<!-- 日志 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>在resou_mybatis 打印sql

数据库迁移从access到mysql_图文详解2种将ACCESS数据库迁移到SQLSERVER数据库的方法...-程序员宅基地

文章浏览阅读631次。数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,简单来说数据库它本身可视化成电子化的文件柜,也就是能够存储电子化文件的处所,用户可以对文件中的数据进行新增、截取、更新、以及删除等等操作。更进一步来说,数据库中的数据是以一定方式存储在一起、能为多个用户共享,且具有可能小的冗余度,以及能与应用程序彼此独立。那本文主要是介绍Access数据库迁移到SQLSERVER数据库的两种方法..._access数据库迁移数据到mysql

rdf3x-0.3.7使用入门_rdf windows c++-程序员宅基地

文章浏览阅读2.4k次。最近在做rdf的数据存储与推理,rdf3x是一个比较火的方案。在github上早就放出了源代码,基于C++开发的,而且是给了Makefile文件的方式,但是如果不熟悉C++开发的同学可能不知道如何入手。我也是自己摸索,这篇算是一个总结,对于C++大牛来说应该是皮毛中的皮毛。写下此篇的目的是搜索了很多,没有对应的解决方案。进入正题。一、资源下载1、rdf3x https:_rdf windows c++

推荐文章

热门文章

相关标签