用vue在element-ui组件库里写正则

正则校验:

校验密码与确认密码

全部代码仅供参考:注册页面
<template>
<div class="reg-container">
<div class="reg-box">
<div class="title-box"></div>
<el-form id="REGfrom" :model="regForm" :rules="regRules" ref="reGForm" class="demo-ruleForm">
<el-form-item prop="username">
<el-input prefix-icon="el-icon-user" v-model="regForm.username" placeholder="请输入用户名"></el-input>
</el-form-item>
<el-form-item prop="password">
<el-input prefix-icon="el-icon-lock" type="password" v-model="regForm.password" placeholder="请输入密码"></el-input>
</el-form-item>
<el-form-item prop="repassword">
<el-input prefix-icon="el-icon-lock" type="password" v-model="regForm.repassword" placeholder="请输入确认密码"></el-input>
</el-form-item>
<el-form-item >
<el-button type="primary" class="regBtn" @click="reg" >去注册</el-button>
<el-link type="info" >去登录</el-link>
</el-form-item>
</el-form>
</div>
</div>
</template>
<script>
export default {
name: 'RegIndex',
data () {
const checkPass = (rule, value, callback) => {
if (value !== this.regForm.password) {
callback(new Error('两次密码输入不正确'))
} else {
callback()
}
}
return {
regForm: {
username: '',
password: '',
repassword: ''
},
regRules: {
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' },
{ pattern: /^[0-9a-zA-Z]{1,10}$/, message: '用户名必须是1-10的字母数字', trigger: 'blur' }
],
password: [
{ required: true, message: '用户密码不能为空', trigger: 'blur' },
{ pattern: /^\S{6,15}$/, message: '密码必须是6-15的非空字符', trigger: 'blur' }
],
repassword: [
{ required: true, message: '确认用户密码不能为空', trigger: 'blur' },
{ pattern: /^\S{6,15}$/, message: '密码必须是6-15的非空字符', trigger: 'blur' },
{ validator: checkPass, trigger: 'blur' }
]
}
}
},
methods: {
reg () {
this.$refs.reGForm.validate(async (valid) => {
if (!valid) return this.$message.error('数据不合法,请重新填写')
const { data: res } = await this.$http.post('/api/reg', this.regForm)
if (res.code === 1) return this.$message.error(res.message)
this.$message.success(res.message)
this.$router.push('/login')
})
}
}
}
</script>
<style lang="less" scoped>
// 老版本脚手架如果想在css中使用@ "~@",这是新的版本无需添加
.reg-container {
background: url('@/assets/images/login_bg.jpg') center;
background-size: cover;
height: 100%;
.reg-box {
width: 400px;
height: 335px;
background-color: #fff;
border-radius: 3px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
.title-box {
height: 60px;
background: url('@/assets/images/login_title.png') center no-repeat;
}
}
#REGfrom{
padding: 0 20px;
}
.regBtn{
width: 100%;
}
}
</style>