Elementui el-input 输入框校验以及表单校验

2023-11-06

一. 常用的 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 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系统没有出现这个问题…

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elementui el-input 输入框校验以及表单校验 的相关文章

随机推荐

  • python用updatecursor删除行

    arcpy env workspace C ArcpyBook Ch8 WildfireData WildlandFires mdb try with arcpy da UpdateCursor FireIncidents CONFID R
  • Linux(CentOS 7)虚拟机无法ping通网关和外网

    1 查看VMware的虚拟网络编辑器的设置 查看网关地址 2 设置虚拟机IP地址以及网关 DNS 以太网 TYPE Ethernet PROXY METHOD none BROWSER ONLY no static设置静态IP BOOTPR
  • IT项目管理第七次作业

    IT项目管理第七次作业 17343140 杨泽涛 第一题 WBS条目 数量或小时数 单位小时成本 美元 子层总和 美元 WBS第二层总和 美元 占总和的 1 项目管理 44 000 22 项目经理 320 100 32 000 项目其他成员
  • Avalonia-VS环境安装

    链接 https pan baidu com s 1T1TYf7 Q5T6hbpOyGCW2Vg 提取码 m8eu 安装SDK 没有这个 vs2019安装后Avalonia插件 无法选择netcore 生成项目 插件地址 上面为vs2019
  • MapReduce中使用Avro出现TaskAttemptContext异常

    打包上传Jar包到Hadoop环境下运行时 出现异常 Found interface org apache hadoop mapreduce TaskAttemptContext but class was expected 在网上找了很多
  • Luatos-Air001(合宙开发板)初步使用——点亮板载LED

    实物图片 实物图片 暗处 实物图片 亮处 可以看到盒子还是很酷炫的 插电后板子自带的红绿蓝流水灯便会启动 比较漂亮 相机一团糊就不放视频了XD 开发环境搭建与程序编写 开发环境的搭建主要参考官网 就在板子背面w 非常贴心 https lua
  • springcloud集成hystrix 实现服务的隔离,熔断,降级

    一 pom引入依赖
  • 关于如何将一个springcloud项目部署至服务器

    目录 1 部署形式 2 Alibaba Cloud Toolkit的使用 3 一个springcloud项目的部署 4 运行jar包 5 后台运行 1 部署形式 一般我们在后端开发中 常常将整个springboot项目打包成war包 或是打
  • 【数据库】窗口函数实战(三)

    窗口函数实战 三 本篇文章是笔者在牛客网上摘选的几道比较有挑战性的SQL窗口函数编程题 1 近三个月未完成试卷数为0的用户完成情况 中等 原题链接 首先来分析一下题目的查询要求 用户近三个有试卷作答记录的月份 可以用窗口函数解决 并且这三个
  • 20+ css高频实用片段,提高幸福感的小技能你可以拥有噢

    前言 修改input placeholder样式 多行文本溢出 隐藏滚动条 修改光标颜色 水平垂直居中 多么熟悉的功能呀 前端童鞋几乎每天都会和他们打交道 一起来总结我们的css幸福小片段吧 下次不用百度 不用谷歌 这里就是你的港湾 Git
  • 原地删除数组中的重复元素--双指针

    题目 原地 不增加任何额外的空间 删除数组中的重复元素 返回新数组长度 思路 参考链接 图片对算法的描述直观明了 利用双指针的概念 一个慢指针 一个快指针 i代表慢指针 初始值为0 j代表快指针 初始值为1 快指针先走 如果nums fas
  • MySQL-图形化界面工具 (上)

    作者 小刘在C站 个人主页 小刘主页 每天分享云计算网络运维课堂笔记 努力不一定有收获 但一定会有收获加油 一起努力 共赴美好人生 树高千尺 落叶归根人生不易 人间真情 目录 MySQL 主要存在以下两点问题 1 安装 1 找到资料中准备好
  • Qt中使用QSettings读取配置文件注意事项

    QSetting使用中的注意事项 QSetting为Windows Linux和MacOS系统提供了统一的配置文件 注册表读取方式 引用QtHelp的一句话 The QSettings class provides persistent p
  • 安徽高考少输入的6个字节猜想

    情报收集 第39题 主观题 网上评卷 6个字节 第39题是主观题 所以排除了机读卡 因为是网上评卷系统应是数据录入员或评卷人在一个web页面填写得分那么服务端就该是xxx request form xxx 接收的 然后保存到数据库中 所以
  • Python 从零开始制作自己的声音 - wave模块读写wav文件详解

    计算机经常被用于处理音频这种真实世界中的数据 声音经过采样 量化和编码后 存储在音频文件 如wav文件中 文章首先介绍wave模块的基础用法 再通过生成一定频率声波的算法实现 来深入讲解wave库的使用 目录 wave模块 wave ope
  • 软件测试——检查代码

    进行到现在 已经是第六章了 本章主要讲解检查代码 静态白盒子测试 被证实是早期发现软件缺陷最有效的方法 虽然这是一项需要大量准备工作才能有成效的任务 但是许多研究表明花费的时间与得到的好处相比是值得的 下面先来看一下本章的内容概述 静态白盒
  • vc++6.0 配置opengl

    vc 6 0 配置opengl 坑 解决安装OpenGL时程序运行提示glut32 dll丢失的问题 在安装OpenGL的时候 很多同学都出现了一个问题 在按照教程配置好OpenGL后运行测试程序 编译通过 但运行时出现 计算机丢失glut
  • vue 原生高德地图 单个定位点,定位 移动

    下载 高德地图 npm i amap amap jsapi loader save 导入 import AMapLoader from amap amap jsapi loader 实例化地图控件 initMap lng lat name
  • Altium Designer PCB板框扩大

    Altium Designer PCB板框扩大 AD PCB板框调整 平时我们用AD设计PCB板时 大多数人都需要裁剪PCB板 但是PCB板框的扩大接触少之又少 前段时间 设计了一个天线整列需要扩大PCB板框 在此记录方法 希望对大家有所帮
  • Elementui el-input 输入框校验以及表单校验

    一 常用的 element ui el input 输入框 1 过滤字母e 在js中属于数字 但是正则匹配 d 是拦不住字母e 的