2018-10-24:表单验证(用户名非空,手机号验证,邮箱验证)

看到同期小伙伴写的表单检验,刚好自己没有自己写过,今天也动手自己写写。

<template>
    <el-table
 class="v-table"
 :data="userList"
 border
v-autoHeight>
<el-table-column prop="sequenceNumber" label="序号" align="center" width="100%" :sortable=true></el-table-column>
<el-table-column prop="userName" label="用户名" align="center" width="100%"></el-table-column>
<el-table-column prop="email" label="邮箱" align="center" width="150%" show-overflow-tooltip></el-table-column>
<el-table-column prop="phoneNumber" label="手机号" align="center" width="120%"
 show-overflow-tooltip></el-table-column>
<el-table-column prop="userRoles" label="用户角色" align="center" width="100%">
<template slot-scope="scope">
<span>{{scope.row.userRoles === "0" ? '超级管理员' : '普通管理员'}}</span>
</template>
</el-table-column>
<el-table-column prop="userStatus" label="状态" align="center" width="100%">
<template slot-scope="scope">
<el-switch
 active-color="#13ce66"
 inactive-color="#ff4949"
 v-model="scope.row.userStatus"
 @change="changeSwitch(scope.$index,scope.row)"
 active-value="0"
 inactive-value="1">
</el-switch>
</template>
</el-table-column>
<el-table-column prop="createUser" label="创建人" align="center" width="100%"></el-table-column>
<el-table-column prop="createTime" label="创建时间" align="center" width="150%" show-overflow-tooltip></el-table-column>
<el-table-column prop="edit" label="操作" align="center" width="120%">
<template slot-scope="scope">
<el-button @click="handleEdit(scope.$index,scope.row)" type="primary" plain size="small">修改</el-button>
<el-button @click="handleResetPassword(scope.$index,scope.row)" type="primary" plain size="small">重置密码
</el-button>
</template>
</el-table-column>
</el-table>
</template>

页面表单完成后,下面就可以开始进行表单校验啦

data (){
 return{
 ruls:{
 userName:[{validator:checkUserName,trigger:'blur'}],
 email:[{validator:checkEmail,tigger:'blur'}],
 phoneNumber:[{validator:checkOhoneNumber,tigger:'blur'}],
 userRoles:[{required:true,message:"选择用户角色",tigger:"blur"}],
 userMode:[{required:true,message:"选择用户状态",tigger:"blur"}],
 password:[
 {min:6,message:'密码长度最少为6位',tigger:'blur'},
 {validator:checkPassword1,tigger:'blur'}
 ],

 repeatPassword:[
 {min:6,message:'密码长度最少为6位',tigger:'blur'}
 {validator:checkPassword2,tigger:'blur'}
 ],
}
var emailReg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
var phoneReg = /^1[345678]\d{9}$/;
//检查用户名是否为空
var checkUserName = (rule, value, callback) => {
  if (value === '' || value.trim().length <= 0) {
    return callback(new Error('用户名不能为空'));
  } else {
    callback();
  }
};
// 检查email是否为空
var checkEmail = (rule, value, callback) => {
  if (value === '' || value.trim().length <= 0) {
    return callback(new Error('email不能为空'));
  } else if (!emailReg.test(value)) {
    return callback(new Error('email格式不正确'));
  } else {
    callback();
  }
};
// 检查手机号是否为空
var checkPhoneNumber = (rule, value, callback) => {
  if (value === '' || value.trim().length <= 0) {
    return callback(new Error('手机号不能为空'));
  } else if (!phoneReg.test(value)) {
    return callback(new Error('手机号格式不正确'));
  } else {
    callback();
  }
};
//检查输入的密码是否符合格式
var checkPassword1 = (rule, value, callback) => {
  if (!value) {
    return callback(new Error('密码不能为空'));
  } else if (this.userForm.password === this.userForm.userName) {
    return callback(new Error('密码不能和用户名的正序相同'));
  } else {
    callback();
  }
};
//检查再次输入的密码与之前是否一致
var checkPassword2 = (rule, value, callback) => {
  if (!value) {
    return callback(new Error('确认密码不能为空'));
  } else if (value !== this.userForm.password) {
    return callback(new Error('两次输入的密码不一致'));
  } else {
    callback();
  }
};

}

}

正则表达式,亲测有效

var emailReg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;//邮箱
var phoneReg = /^1[345678]\d{9}$/;//电话号码
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,132评论 25 708
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,885评论 2 59
  • 这个序可能会有些长 先作个自我介绍,我是一名交互设计师,90后。我并不怎么喜欢编辑文章或写点什么,就是因为懒,所以...
    IxDKN阅读 11,109评论 16 160
  • 小五有话说:初入和即将踏入职场的同学们基本都听说过校园霸凌。但关于职场霸凌行为的讨论却比较少。而职场霸凌行为可能是...
    51视聘阅读 775评论 0 0
  • 意识到不再年少是再不能捻起一片落叶就听见一首诗
    西市阅读 199评论 1 1