@@ -16,15 +16,37 @@ You must breakdown this problem in order to solve it. Find one test case first a
1616*/
1717
1818function passwordValidation ( password , passwords ) {
19- return (
20- password . length >= 5 && // At least 5 characters
21- / [ A - Z ] / . test ( password ) && // At least one uppercase letter
22- / [ a - z ] / . test ( password ) && // At least one lowercase letter
23- / [ 0 - 9 ] / . test ( password ) && // At least one digit
24- / [ ! # $ % . * & ] / . test ( password ) && // At least one special character
25- ! passwords . includes ( password ) // Must not be any previous password
26- ) ;
27- }
28- module . exports = passwordValidation ;
19+ // Check the password length
20+ if ( password . length < 5 ) {
21+ return false ; // Must be at least 5 characters
22+ }
23+
24+ // Check if the password contains at least one uppercase letter
25+ if ( ! / [ A - Z ] / . test ( password ) ) {
26+ return false ; // Must contain at least one uppercase letter
27+ }
28+
29+ // Check if the password contains at least one lowercase letter
30+ if ( ! / [ a - z ] / . test ( password ) ) {
31+ return false ; // Must contain at least one lowercase letter
32+ }
33+
34+ // Check if the password contains at least one digit
35+ if ( ! / [ 0 - 9 ] / . test ( password ) ) {
36+ return false ; // Must contain at least one number
37+ }
2938
39+ // Check if the password contains at least one special character
40+ if ( ! / [ ! # $ % . * & ] / . test ( password ) ) {
41+ return false ; // Must contain at least one non-alphanumeric symbol
42+ }
3043
44+ // Check if the password is not one of the previous passwords
45+ if ( passwords . includes ( password ) ) {
46+ return false ; // Password must not be any previous password
47+ }
48+
49+ return true ; // If all conditions are met, return true
50+ }
51+
52+ module . exports = passwordValidation ;
0 commit comments