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

之前设计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})+\.?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251372.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端解析返回的对象时json显示$ref问题的解决

在mapper中写的语句&#xff0c;结果集中association&#xff0c;采用的一个对象&#xff0c;整个list列表中每个元素有一个对象元素&#xff0c;如果第二个元素中有一个与第一个元素中对象同名的&#xff0c;就会去引用上一个元素的地址&#xff0c;在json前台解析的时候就不会…

微信小程序模仿开眼视频app(一)——视频首页、视频详情、分类

可到我的github账号上去copy文件 先展示一下我实现了的功能吧 提示&#xff0c;如果有出现无法加载域名之类问题的的&#xff0c;可以在“设置”-“项目设置”-打钩“不校验合法域名……”&#xff1b; 或者直接登录自己的微信小程序后台设置域名信息 首页部分&#xff1a; 1…

es6 --- Thunkify源码分析

首先看一个例子:读取package.json下的文件,并将读取的数据(若读取失败)打印出来 // 导入fs和thunkify模块 var thunkify require(thunkify); var fs require(fs);// 定义读取文件的函数read var read thunkify(fs.readFile);// 调用read函数读取package.json下的文件.并对数…

(转)C# WebApi 身份认证解决方案:Basic基础认证

原文地址&#xff1a;http://www.cnblogs.com/landeanfen/p/5287064.html 阅读目录 一、为什么需要身份认证二、Basic基础认证的原理解析 1、常见的认证方式2、Basic基础认证原理三、Basic基础认证的代码示例 1、登录过程2、/Home/Index主界面3、WebApiCORS验证部分&#xff08…

ZNZD平台vue项目

一、安装配置node.js 1.1 配置企业级软件仓库 1&#xff09;首先用的是Nexus Repository Manager搭建npm私服&#xff1b;&#xff08;待补充&#xff09; 2&#xff09;项目使用修改.npmrc文件来修改源 现在需要做的就是修改源&#xff01;采取配置npmrc文件的方式&#x…

微信小程序模仿开眼视频app(二)——搜索功能

微信小程序模仿开眼视频app&#xff08;一&#xff09;有介绍首页、视频详情和分类部分 可到我的github账号上去copy文件 搜索部分 一开始没想要设置历史记录啊、热门搜索啊这些的&#xff0c;只是想把搜索框弄好看一点&#xff0c;无意中发现了微信官方ui库&#xff1a;weu…

设计模式(六)------设计模式六大原则(5):迪米特法则

转载自&#xff1a;http://www.jianshu.com/p/14589fb6978e &#xff08;作者简书&#xff1a;涅槃1992&#xff09; 揭秘迪米特法则 迪米特法则&#xff08;Law of demeter,缩写是LOD&#xff09;要求&#xff1a;一个对象应该对其他对象保持最少了解&#xff0c; 通缩的讲就是…

http://www.cda.cn/view/25735.html

通过实例浅析Python对比C语言的编程思想差异 我一直使用 Python&#xff0c;用它处理各种数据科学项目。 Python 以易用闻名。有编码经验者学习数天就能上手&#xff08;或有效使用它&#xff09;。 听起来很不错&#xff0c;不过&#xff0c;如果你既用 Python&#xff0c;同时…

前端知识点梳理(一)

一、HTML 1. meta标签 记住2个属性&#xff1a;name和http-equiv name&#xff1a;描述网页 <meta name"参数" content"具体的描述">http-equiv&#xff1a;文件头 HTML中的meta标签及其使用方法 二、CSS 1. css实现水平居中的几种方式 css实…

Babel 7 基础入门学习(详细版)

可以在我的GitHub上下载示例代码。 前言 之前一直想要系统的学习一下Babel的使用规则&#xff0c;看过阮一峰老师的《Babel基础入门》&#xff0c;无奈此教程是2016年出的&#xff0c;而Babel 7都已经出来啦&#xff0c;于是&#xff0c;在搜集了各种资料后&#xff0c;关于…

Kubernetes学习之路(四)之Node节点二进制部署

K8S Node节点部署 1、部署kubelet &#xff08;1&#xff09;二进制包准备 [rootlinux-node1 ~]# cd /usr/local/src/kubernetes/server/bin/ [rootlinux-node1 bin]# cp kubelet kube-proxy /opt/kubernetes/bin/ [rootlinux-node1 bin]# scp kubelet kube-proxy 192.168.56.1…

前端知识点梳理(二)

1.内核 浏览器内核&#xff08;Rendering Engine&#xff09;最初分为&#xff1a;渲染引擎&#xff08;layout engineer&#xff09;或&#xff08;Rendering Engine&#xff09;和js引擎&#xff1b;后来 JS 引擎越来越独立&#xff0c;内核就倾向于单指渲染引擎。浏览器she…

微信小程序模仿开眼视频app(三)——信息卡片瀑布流和分类

《微信小程序模仿开眼视频app&#xff08;一&#xff09;——视频首页、视频详情、分类》 《微信小程序模仿开眼视频app&#xff08;二&#xff09;——搜索功能》 可到我的github账号上去copy文件 瀑布流部分 文件代码提示的挺详细的&#xff0c;这里主要点一下 社区与分类…

javascript --- typeof方法和instanceof方法

ES5中: 原始类型包括:Number、String、Boolean、Null、Undefined 原始封装类型包括:Number、String、Boolean 引用类型包括:Array、Function、RegExp、Error、Date、Error 变量对象 原始类型的实例成为原始值,它直接保存在变量对象中. 引用类型的实例成为引用值,它作为一个指针…

《JavaScript 高级程序设计》笔记 第1~5章

第1章 js是专为网页交互而设计的脚本语言&#xff0c;由3部分组成&#xff1a; ECMAScript&#xff0c;提供核心语言功能DOM文档对象模型&#xff0c;提供访问和操作网页内容的方法和接口BOM浏览器对象模型&#xff0c;提供与浏览器交互的方法和接口 js是一种脚本语言、解释…

javascript --- js中prototype、__proto__、[[Propto]]、constructor的关系

首先看下面一行代码: function Person(name){this.name name; } var person1 new Person; console.log(person1.__proto__ Person.prototype); console.log(person1.constructor Person);控制台打印如下: 可以看见,当使用构造函数(Person)构造一个实例(person1)时, 在后…

前端知识点整理收集(不定时更新~)

知识点都是搜集各种大佬们的&#xff0c;如有冒犯&#xff0c;请告知&#xff01; 目录 原型链 New关键字的执行过程 ES6——class constructor方法 类的实例对象 不存在变量提升 super 关键字 ES6——...&#xff08;展开/收集&#xff09;运算符 面向对象的理解 关…

重学《JavaScript 高级程序设计》笔记 第6章对象

第6章 面向对象的程序设计 ECMAScript中没有类的概念&#xff1b; 1.创建对象-历史 1.1 创建实例&#xff0c;添加方法和属性 → 对象字面量 缺点&#xff1a; 使用同一接口创建很多对象&#xff0c;产生大量重复代码 var person new Object() person.name "Y" pe…

javascrip --- 构造函数的继承

两点需要注意的. 第一是在构造函数声明时,会同时创建一个该构造函数的原型对象,而该原型对象是继承自Object的原型对象 // 声明一个构造函数Rectengle function Rectangle(length, width) {this.length length;this.width width; }// 即:看见function 后面函数名是大写,一般…

javascript --- 使用语法糖class定义函数

本文讨论的是通过class声明的函数,有什么特点,或者说是指向了哪里. class A() {} // A是一个类// 要看class声明的函数指向哪里,只需将其[[Prototype]]属性打印到控制台,下面看看A和它的原型对象的指向 // 注:[[Prototype]]属性通过__proto__访问 console.log(A.__proto__…