下面是一個簡單的示例,該示例要求密碼必須同時包含大寫字母娃惯、小寫字母跷乐、數(shù)字和特殊字符,并且長度至少為8位:
<template>
<el-form ref="form" :rules="rules">
<el-form-item label="密碼" prop="password">
<el-input v-model="form.password" show-password></el-input>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
password: ''
},
rules: {
password: [
{ required: true, message: '請輸入密碼', trigger: 'blur' },
{
validator: (rule, value, callback) => {
const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/
if (regex.test(value)) {
callback()
} else {
callback(new Error('密碼必須同時包含大寫字母趾浅、小寫字母愕提、數(shù)字和特殊字符馒稍,長度至少為8位'))
}
},
trigger: 'blur'
}
]
}
}
}
}
</script>
在上面的示例中,rules 對象包含了一個名為 password 的驗證規(guī)則數(shù)組浅侨,該規(guī)則要求密碼字段必須為非空纽谒,并且必須符合正則表達式 /^(?=.[a-z])(?=.[A-Z])(?=.\d)(?=.[@!%*?&]{8,}$/,該正則表達式要求密碼必須同時包含大寫字母如输、小寫字母鼓黔、數(shù)字和特殊字符,長度至少為8位挨决。如果密碼不符合該規(guī)則请祖,則會顯示一個錯誤消息订歪。