1
1
export interface ValidationStrategy {
2
+ nameValidate ( input : string ) : boolean ;
3
+ phoneValidate ( input : string ) : boolean ;
2
4
emailValidate ( input : string ) : boolean ;
3
5
passwordValidate ( input : string ) : boolean ;
6
+ pwCheckValidate ( pwCheck : string , password : string ) : boolean ;
4
7
}
5
8
6
9
export class LooseValidation implements ValidationStrategy {
10
+ nameValidate ( name : string ) : boolean {
11
+ return name . length >= 2 ;
12
+ }
13
+ phoneValidate ( phone : string ) : boolean {
14
+ return phone . length == 11 ;
15
+ }
16
+
17
+ pwCheckValidate ( pwCheck : string , password : string ) : boolean {
18
+ return pwCheck == password ;
19
+ }
20
+
7
21
emailValidate ( email : string ) : boolean {
8
22
return / ^ [ a - z A - Z 0 - 9 . _ - ] + @ [ a - z A - Z 0 - 9 . - ] + \. [ a - z A - Z ] { 2 , 6 } $ / . test ( email ) ;
9
23
}
@@ -13,6 +27,15 @@ export class LooseValidation implements ValidationStrategy {
13
27
}
14
28
15
29
export class StrongValidation implements ValidationStrategy {
30
+ nameValidate ( name : string ) : boolean {
31
+ return name . length >= 2 ;
32
+ }
33
+ phoneValidate ( phone : string ) : boolean {
34
+ return phone . length == 11 ;
35
+ }
36
+ pwCheckValidate ( pwCheck : string , password : string ) : boolean {
37
+ return pwCheck == password ;
38
+ }
16
39
emailValidate ( password : string ) : boolean {
17
40
return password . length >= 6 ;
18
41
}
@@ -32,11 +55,23 @@ export class ValidateProcessor {
32
55
this . #validator = validator ;
33
56
}
34
57
58
+ isValidName ( name : string ) {
59
+ return this . #validator. nameValidate ( name ) ;
60
+ }
61
+
62
+ isValidPhone ( phone : string ) {
63
+ return this . #validator. phoneValidate ( phone ) ;
64
+ }
65
+
35
66
isValidEmail ( email : string ) {
36
67
return this . #validator. emailValidate ( email ) ;
37
68
}
38
69
39
70
isValidPassword ( password : string ) {
40
71
return this . #validator. passwordValidate ( password ) ;
41
72
}
73
+
74
+ isValidPwCheck ( password : string , pwCheck : string ) {
75
+ return this . #validator. pwCheckValidate ( password , pwCheck ) ;
76
+ }
42
77
}
0 commit comments