Elementui el-input输入框校验及表单校验实例代码

 更新时间:2023年06月09日 10:37:20   作者:清阿哥、  
输入框是使用非常多的元素,用来输入用户名、密码等等信息,Element提供了功能和样式丰富的输入框,下面这篇文章主要给大家介绍了关于Elementui el-input输入框校验及表单校验的相关资料,需要的朋友可以参考下

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

总结

到此这篇关于Elementui el-input输入框校验及表单校验的文章就介绍到这了,更多相关el-input输入框校验及表单校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于vue实现新闻自下往上滚动效果(示例代码)

    基于vue实现新闻自下往上滚动效果(示例代码)

    这篇文章主要介绍了vue新闻自下往上滚动效果,当鼠标鼠标放上暂停滚动,鼠标移出继续滚动,本文结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Vue.js中轻松解决v-for执行出错的三个方案

    Vue.js中轻松解决v-for执行出错的三个方案

    v-for标签可以用来遍历数组,将数组的每一个值绑定到相应的视图元素中去,下面这篇文章主要给大家介绍了关于在Vue.js中轻松解决v-for执行出错的三个方案,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • vue计算属性和监听器实例解析

    vue计算属性和监听器实例解析

    本文通过基本实例给大家介绍了vue计算属性和监听器的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • vuex实现及简略解析(小结)

    vuex实现及简略解析(小结)

    这篇文章主要介绍了vuex实现及简略解析(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • Vue的缓存方法示例详解

    Vue的缓存方法示例详解

    这篇文章主要给大家介绍了关于Vue缓存方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • vant中list的使用以及首次加载触发两次解决问题

    vant中list的使用以及首次加载触发两次解决问题

    这篇文章主要介绍了vant中list的使用以及首次加载触发两次解决问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Vue前端在线预览文件插件使用详解

    Vue前端在线预览文件插件使用详解

    文章介绍了两种用于在线预览文档的插件:view.xdocin和view.officeapps.live,view.xdocin插件支持在线预览并延长使用时间,但不支持下载,view.officeapps.live插件是微软插件,但预览速度较慢,且有时会出现翻页问题,两种插件都适用于不需要下载和安装软件的场景
    2026-01-01
  • vue指令防止按钮连点解析

    vue指令防止按钮连点解析

    这篇文章主要介绍了vue指令防止按钮连点解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue中的$set的使用实例代码

    Vue中的$set的使用实例代码

    这篇文章主要介绍了Vue中的$set的使用,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • mpvue性能优化实战技巧(小结)

    mpvue性能优化实战技巧(小结)

    这篇文章主要介绍了mpvue性能优化实战技巧(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论