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  }