@@ -2,10 +2,12 @@ package validation
22
33import (
44 "errors"
5+ "regexp"
56 "strconv"
67 "strings"
78
89 "github.com/google/uuid"
10+ "github.com/oklog/ulid/v2"
911)
1012
1113func validateRequired (value string , errorMsg string ) error {
@@ -23,6 +25,38 @@ func validationIsUUID(value string, errorMsg string) error {
2325 return nil
2426}
2527
28+ func validationIsULID (value string , errorMsg string ) error {
29+ _ , err := ulid .Parse (value )
30+ if err != nil {
31+ return errors .New (errorMsg )
32+ }
33+ return nil
34+ }
35+
36+ func validationIsBIC (value string , errorMsg string ) error {
37+ bicRegex := `^[A-Za-z]{4}[A-Za-z]{2}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$`
38+ if matched , _ := regexp .MatchString (bicRegex , value ); ! matched {
39+ return errors .New (errorMsg )
40+ }
41+ return nil
42+ }
43+
44+ func validationIsEthereumAddress (value string , errorMsg string ) error {
45+ ethRegex := `^0x[a-fA-F0-9]{40}$`
46+ if matched , _ := regexp .MatchString (ethRegex , value ); ! matched {
47+ return errors .New (errorMsg )
48+ }
49+ return nil
50+ }
51+
52+ func validationIsBtcAddress (value string , errorMsg string ) error {
53+ btcRegex := `^(1|3|bc1)[a-zA-HJ-NP-Z0-9]{25,39}$`
54+ if matched , _ := regexp .MatchString (btcRegex , value ); ! matched {
55+ return errors .New (errorMsg )
56+ }
57+ return nil
58+ }
59+
2660func validateMinLength (value string , min int , errorMsg string ) error {
2761 if len (value ) < min {
2862 return errors .New (errorMsg )
0 commit comments