main.go 955 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package main
  2. import (
  3. "fmt"
  4. "math/rand"
  5. "regexp"
  6. "time"
  7. )
  8. type Mac struct {
  9. Flag string
  10. }
  11. func NewMac(flag string) Mac {
  12. return Mac{Flag:flag}
  13. }
  14. func (m *Mac)Set(macAddr string)bool{
  15. reg := regexp.MustCompile("^([A-Fa-f0-9]{2}"+m.Flag+"){5}[A-Fa-f0-9]{2}$")
  16. result :=reg.Find([]byte(macAddr))
  17. return len(result) != 0
  18. }
  19. func main(){
  20. mac := NewMac("#")
  21. fmt.Println(mac.Set("11-22-33-44-55-66"))
  22. fmt.Println(mac.Set("11#22#33#44#55#66"))
  23. fmt.Println(mac.Set("11#22#33#44#F5#66"))
  24. fmt.Println(mac.Set("11#22#33#44#F5#6G"))
  25. fmt.Println(mac.Set("11#22#33#44#55#"))
  26. fmt.Println(mac.Set("11#22#33#44#55#66#dy"))
  27. }
  28. func test(l int) string{
  29. str := "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  30. bytes := []byte(str)
  31. var result []byte
  32. r := rand.New(rand.NewSource(time.Now().UnixNano()+int64(rand.Intn(10))))
  33. for i := 0; i < l; i++ {
  34. result = append(result, bytes[r.Intn(len(bytes))])
  35. }
  36. return string(result)
  37. }