Reputation: 1349
I am trying to add password rules in my vue app. I am using vuetify version 2.3.10.
This is what I have so far, and I am not able to figure out how can I add the validation for password to include special characters, capital letter and number.
passwordRules: [
value => !!value || 'Please enter a password',
(value) => !!value || 'Please type password.',
(value) => (value && value.length >= 6) || 'minimum 6 characters',
]
Help me resolve this issue.
Upvotes: 1
Views: 2177
Reputation: 6532
Useful topic:
https://stackoverflow.com/a/21456918/7158959
passwordRules: [
value => !!value || 'Please enter a password',
(value) => !!value || 'Please type password.',
(value) => (value && /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{6,}$/.test(value)) || 'Minimum 6 characters, One capital latter, Special charater, Number',
]
console.log(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{6,}$/.test("hEse%9"))
As requested to brake it down:
passwordRules: [
value => !!value || 'Please enter a password',
(value) => !!value || 'Please type password.',
(value) => (value && /\d/.test(value)) || 'At least one digit',
(value) => (value && /[A-Z]{1}/.test(value)) || 'At least one capital latter',
(value) => (value && /[^A-Za-z0-9]/.test(value)) || 'At least one special character',
(value) => (value && value.length < 6 ) || 'minimum 6 characters',
]
console.log(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{6,}$/.test("hEse%9"))
console.log(/\d/.test("hE4se%")) // digit
console.log(/[A-Z]{1}/.test("hE4se%")) // Capital latter
console.log(/[^A-Za-z0-9]/.test("hE#4se")) // Special character
Also your length needs to be checked with < 6
I believe.
Upvotes: 4