<!DOCTYPE html>
<html>
<head>
<title></title>
<!-- 引入样式 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
</head>
<body>
<div id="app">
<el-form :rules="rules"
:model="obj"
ref="formName"
label-width="100px"
class="demo-ruleForm">
<el-form-item label="参数" prop="param">
<el-input v-model="obj.param" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="参数1" prop="param1">
<el-input v-model="obj.param1" auto-complete="off"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm(‘formName‘)">提交</el-button>
<el-button @click="resetForm(‘formName‘)">重置</el-button>
</el-form-item>
</el-form>
</div>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script type="text/javascript">
const app = new Vue({
el: ‘#app‘,
data: function(){
const type = ‘string‘; // string,number,mail,date等等
const regExp = /^1[34578]\d{9}$/;
let validateSelf = ((rule, value, callback) => {
if(pass){ // 输入内容通过验证,也就是正确的,什么也不用提示
callback()
}else{
callback(‘Error Info‘) // 给出自定义提示
// callback(new Error(‘Error tip‘)) // 此处也接受一个Error实例
}
})
return {
rules:{
param: [
{ required: true, message: ‘空文本提示‘, trigger: ‘blur, change‘ },
{ type: type, message: ‘类型校验提示文本‘ },
{ pattern: regExp, message: ‘正则匹配提示文本‘ },
{ validator: validateSelf, trigger: ‘blur‘ }
],
param1: [
{ required: true, message: ‘空文本提示‘, trigger: ‘blur, change‘ },
{ type: type, message: ‘类型校验提示文本‘ },
{ pattern: regExp, message: ‘正则匹配提示文本‘ },
{ validator: validateSelf, trigger: ‘blur‘ }
],
},
obj: {
param: ‘‘,
param1: ‘‘
}
}
},
methods:{
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
// 验证通过之后的操作
// ...
} else {
// 验证不通过之后的操作
// ...
return false;
}
});
},
resetForm(formName) {
this.$refs[formName].resetFields();
}
}
})
</script>
</body>
</html>
另附上别人总结的一篇正则表达式大全,开发过程中提供了巨大帮助,原文转自(不会弄):https://blog.csdn.net/qq_28633249/article/details/77686976
原文:https://www.cnblogs.com/anjx/p/11246060.html