//Html
<el-form-item label="用户密码" prop="password">
<el-input v-model="form.password"
placeholder="8-20位大小写字母+数字+特殊符号"
type="password"
maxlength="20"
show-password />
</el-form-item>
//js
//规则
password: [
{
min: 8,
max: 20,
message: '8-20位大小写字母+数字+特殊符号',
required: true,
trigger: 'blur',
validator: validPassword,
},
]
//正则表达式
function validPassword(rule, value, callback) {
// 密码校验 至少8位大小写英文字母+数字+特殊符号
let reg = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,20}$/;
if (!reg.test(value)) {
callback(new Error('密码8-20位大小写英文字母+数字+特殊符号'));
} else {
callback();
}
}