github.com/EngineerKamesh/gofullstack@v0.0.0-20180609171605-d41341d7d4ee/volume1/section2/usernamechecker/usernamechecker.go (about) 1 // A username syntax checker for the GopherFace web application. 2 package main 3 4 import ( 5 "flag" 6 "fmt" 7 "log" 8 "regexp" 9 ) 10 11 const UsernameRegex string = `^@?(\w){1,15}$` 12 13 func main() { 14 15 var usernameInput string 16 flag.StringVar(&usernameInput, "username", "Gopher", "The GopherFace Username To Check") 17 flag.Parse() 18 19 fmt.Println("GopherFace Username Validation Checker") 20 fmt.Println("Checking Syntax for username, \"", usernameInput, "\", resulted in: ", CheckUsernameSyntax(usernameInput), "\n") 21 } 22 23 func CheckUsernameSyntax(username string) bool { 24 25 validationResult := false 26 r, err := regexp.Compile(UsernameRegex) 27 if err != nil { 28 log.Fatal(err) 29 } 30 validationResult = r.MatchString(username) 31 return validationResult 32 }