Skip to content
Snippets Groups Projects
Commit 83358e58 authored by Johan de Klerk's avatar Johan de Klerk
Browse files

Added IsValidEmail function

parent fb21bb97
No related branches found
No related tags found
No related merge requests found
......@@ -304,3 +304,10 @@ func StripQueryString(inputUrl string) (string, error) {
u.RawQuery = ""
return u.String(), nil
}
func IsValidEmail(email string) bool {
// Found here: https://stackoverflow.com/questions/201323/how-can-i-validate-an-email-address-using-a-regular-expression
regex, _ := regexp.Compile("(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])")
isValidEmail := regex.MatchString(email)
return isValidEmail
}
package string_utils
import "testing"
func TestIsValidEmail(t *testing.T) {
type args struct {
email string
}
tests := []struct {
name string
args args
want bool
}{
{
name: "valid",
args: args{email: "johandk@uafrica.com"},
want: true,
},
{
name: "invalid",
args: args{email: "johandk@@uafrica.com"},
want: false,
},
{
name: "invalid",
args: args{email: "johandk@uafricacom"},
want: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := IsValidEmail(tt.args.email); got != tt.want {
t.Errorf("IsValidEmail() = %v, want %v", got, tt.want)
}
})
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment