之前设计login组件时增加了简单的表单验证,因此对应的users组件,添加用户功能也必须设置相应的验证规则。


文档form表单验证只提供了用户名/密码,是否必须/长度限制的验证。对于电话、邮箱和地址的验证如下:

html部分,先绑定props

<el-form-item label="邮箱" prop="email"
:label-width="formLabelWidth"><el-input v-model="form.email" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="手机" prop="mobile"
:label-width="formLabelWidth"><el-input v-model="form.mobile" autocomplete="off"></el-input>
</el-form-item>

js部分,在data内的return之前

  data () {const checkPhone = (rule, value, callback) => {const phoneReg = /^1[3|4|5|7|8|9][0-9]{9}$/if (!value) {return callback(new Error('电话号码不能为空'))}setTimeout(() => {// Number.isInteger是es6验证数字是否为整数的方法,但是我实际用的时候输入的数字总是识别成字符串// 所以我就在前面加了一个+实现隐式转换if (!Number.isInteger(+value)) {callback(new Error('请输入数字值'))} else {if (phoneReg.test(value)) {callback()} else {callback(new Error('电话号码格式/长度不正确'))}}}, 100)}var checkEmail = (rule, value, callback) => {const mailReg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/if (!value) {return callback(new Error('邮箱不能为空'))}setTimeout(() => {if (mailReg.test(value)) {callback()} else {callback(new Error('请输入正确的邮箱格式'))}}, 100)}rules: {mobile: [{ validator: checkPhone, trigger: 'blur', required: true }],email: [{ validator: checkEmail, trigger: 'blur', required: true }]}}

实现效果如下:

一些常用的正则:

  1 JS的正则表达式2 3 强:字母+数字+特殊字符&nbsp;4 &nbsp;^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&*]+$)(?![\d!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$5 &nbsp;&nbsp;&nbsp;6 &nbsp;&nbsp;&nbsp;&nbsp;7 中:字母+数字,字母+特殊字符,数字+特殊字符8 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$9 10 弱:纯数字,纯字母,纯特殊字符11 ^(?:\d+|[a-zA-Z]+|[!@#$%^&*]+)$12 13 14 //校验是否全由数字组成15 16 function isDigit(s)17 {18 var patrn=/^[0-9]{1,20}$/;19 if (!patrn.exec(s)) return false20 return true21 }22 23 //校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串24 function isRegisterUserName(s)  25 {  26 var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;  27 if (!patrn.exec(s)) return false28 return true29 }30 31 function isRegisterUserName(s)32 {33 var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;34 if (!patrn.exec(s)) return false35 return true36 }37 38 39 //校验用户姓名:只能输入1-30个以字母开头的字串40 Javascript代码41 function isTrueName(s)  42 {  43 var patrn=/^[a-zA-Z]{1,30}$/;  44 if (!patrn.exec(s)) return false45 return true46 }  47 }}  48 49 //校验密码:只能输入6-20个字母、数字、下划线  50 function isPasswd(s)  51 {  52 var patrn=/^(\w){6,20}$/;  53 if (!patrn.exec(s)) return false54 return true55 }  56 57 //校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”  58 function isTel(s)  59 {  60 //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;  61 var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;  62 if (!patrn.exec(s)) return false63 return true64 }  65 66 //校验手机号码:必须以数字开头,除数字外,可含有“-”  67 function isMobil(s)  68 {  69 var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;  70 if (!patrn.exec(s)) return false71 return true72 }  73 74 //校验邮政编码  75 function isPostalCode(s)  76 {  77 //var patrn=/^[a-zA-Z0-9]{3,12}$/;  78 var patrn=/^[a-zA-Z0-9 ]{3,12}$/;  79 if (!patrn.exec(s)) return false80 return true81 }  82 83 //校验搜索关键字  84 function isSearch(s)  85 {  86 var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\]  87         [\]\{\}:;'\,.<>?]{0,19}$/;  88 if (!patrn.exec(s)) return false89 return true90 }  91 92 function isIP(s) //by zergling  93 {  94 var patrn=/^[0-9.]{1,20}$/;  95 if (!patrn.exec(s)) return false96 return true97 }  98 99 正则表达式
100 ^\\d+$  //非负整数(正整数 + 0)
101 ^[0-9]*[1-9][0-9]*$  //正整数
102 ^((-\\d+)|(0+))$  //非正整数(负整数 + 0)
103 ^-[0-9]*[1-9][0-9]*$  //负整数
104 ^-?\\d+$    //整数
105 ^\\d+(  //非负浮点数(正浮点数 + 0)
106 ^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 
107 //正浮点数
108 ^((-\\d+(  //非正浮点数(负浮点数 + 0)
109 ^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
110 //负浮点数
111 ^(-?\\d+)(  //浮点数
112 ^[A-Za-z]+$  //由26个英文字母组成的字符串
113 ^[A-Z]+$  //由26个英文字母的大写组成的字符串
114 ^[a-z]+$  //由26个英文字母的小写组成的字符串
115 ^[A-Za-z0-9]+$  //由数字和26个英文字母组成的字符串
116 ^\\w+$  //由数字、26个英文字母或者下划线组成的字符串
117 ^[\\w-]+(    //email地址
118 ^[a-zA-z]+://(  //url
119 ^[A-Za-z0-9_]*$
120
121 匹配完整域名的正则表达式:
122 [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?

element-ui表单验证:用户名、密码、电话、邮箱相关推荐

  1. 关于vue.js element ui 表单验证 this.$refs[formName].validate()的问题

      方法使用前需了解: 来自"和"小编的小提示: 首先打印一下this.$refs[formName],检查是否拿到了正确的需要验证的form. 其次在拿到了正确的form后,检查 ...

  2. element ui 表单验证为正整数

    很多时候都会用表单中输入正整数的情况,在element ui中可以用el-input-number 标签来显示输入框是number类型的,或者type="number"也可以的,但 ...

  3. Element UI——表单验证输入的数字检测出来是string解决方案

    问题描述 打印 判断类型 问题分析 解决方案 数字类型的验证需要在 v-model 处加上 .number 的修饰符,这是 Vue 自身提供的用于将绑定值转化为 number 类型的修饰符. < ...

  4. element ui表单验证

    这里通过一个实例来说明表单验证: 如上图所示,我们点击"添加新用户"弹出弹框 这里只讲弹框里面的校验代码: <template><div id="cre ...

  5. element ui 表单验证通过后没有绿色框 求解 (已解)

    使用element自带的表单验证. 输入框选中状态边框为蓝色, 输入框输入错误的时候边框为红色, 输入正确的时候边框为绿色. 但是有的时候输入正确没有出现绿色(红色和蓝色状态能正常出现) 我的相关代码 ...

  6. element ui 表单验证残留提示处理

    问题:如果vue的同一个页面拥有两个表单.验证第一个表单时没有通过就切换到第二个,那么第二个表单会出现验证错误的信息 点击编辑框 解决方法:添加表单重置验证 我们可以通过为两个表单添加ref属性 之后 ...

  7. element ui表单验证,验证通过但是不进if(valid){}步骤

    表单自定义验证,如图: data中定义的验证规则: var validatePass = (rule, value, callback) => {if (value === '') {retur ...

  8. jQuery表单验证用户名密码

    //校验用户名function checkUsername() {var username = $("#username").val();alert(username);var u ...

  9. element -ui 表单验证 如果 需要验证的v-model 是对象中的对象 总是提示没有填写....

    如果需要验证的是以上方式那么 rules的书写方法需要该改变 ? 转载于:https://www.cnblogs.com/wxqworld/p/11301139.html

  10. Element ui 表单验证触发方式:trigger的两种选项

    trigger: 'blur' blur失去焦点 比如输入框里.校验文本框是否为空 trigger: 'change' change数据改变 需要手动选择的东西,可以用change 区别: 没有进行任 ...

最新文章

  1. AngularJs学习笔记--expression
  2. JavaScript打印杨辉三角
  3. 《树莓派Python编程入门与实战(第2版)》——3.9 小结
  4. 怎样取消无线配置服务器,如何 去掉无线配置服务器
  5. 可能是世界上最简单的用 Go 来写 WebAssembly 的教程
  6. dotNet Core使用SignalR实现websocket
  7. 崇高文本_崇高文本片段指南
  8. java 交互式 shell_Java9 Shell工具(JShell)
  9. 2021年中国大屏幕拼接系统市场趋势报告、技术动态创新及2027年市场预测
  10. Linux初级阶段学习笔记-本地源YUM配置
  11. CF1041E Tree Reconstruction
  12. Java的break和continue关键字
  13. VS语音信号处理(5) C语言PCM格式语音存为WAV格式语音工程实例
  14. 调通sina33下的AP6212A0(WIFI+BT)(V1.1版本)
  15. 【解决方案】scrapy报错KeyError: ‘Spider not found‘
  16. amcharts教程
  17. 利用Yocto构建嵌入式Linux教程02--Yocto的一些基本概念介绍
  18. 重装 Mac 系统后的安装软件和个人配置[个人习惯]
  19. Godaddy ssl续费更新问题总结
  20. 【OpenGL】画线算法

热门文章

  1. linux安装icc步骤,怎麼安装不到 icc?
  2. mysql脚本模式创建索引_mysql创建脚本索引范例
  3. java word 转换 图片_怎样把手机上的图片转换成word?
  4. 武侠乂服务器位置在哪,武侠乂手游秘境在哪里 地图秘境宝藏分布位置大全
  5. linux so_nosigpipe,TCP_NODELAY/SO_LINGER/SO_NOSIGPIPE/MSG_NOSIGNAL设置
  6. .mat,.txt,.csv 数据转换为weka中的arff格式及matlab和Weka之间相互转换格式
  7. iOS中如何优化Cell中图片的下载性能
  8. Awesome Deep Vision
  9. Python 链接汇总
  10. 0074 几道面试题