just add a custom function with the rules you want to the Vuelidate validations.
validations: {
password: {
required,
// minLength: minLength(8) // I assume you'd want something like this too
valid: function(value) {
const containsUppercase = /[A-Z]/.test(value)
const containsLowercase = /[a-z]/.test(value)
const containsNumber = /[0-9]/.test(value)
const containsSpecial = /[#?!@$%^&*-]/.test(value)
return !containsUppercase || !containsLowercase || !containsNumber || !containsSpecial
}
}
}
It'd probably be helpful to break each requirement up into a separate function, so you can set a different error message for each (which would be helpful to guide the user as to what to they need to fix).
validations: {
password: {
required,
// minLength: minLength(8) // I assume you'd want something like this too
containsUppercase: function(value) {
return !/[A-Z]/.test(value)
},
containsLowercase: function(value) {
return !/[a-z]/.test(value)
},
containsNumber: function(value) {
return !/[0-9]/.test(value)
},
containsSpecial: function(value) {
return !/[#?!@$%^&*-]/.test(value)
}
}
}