+ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + name := " Onur Cinar " + + name, err := v2.Check(name, v2.TrimSpace, v2.Required) + if err != nil { + fmt.Println(err) + return + } + + fmt.Println(name) +} +``` + +#### Output + +``` +Onur Cinar +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + type Person struct { + Name string `checkers:"trim required"` + } + + person := &Person{ + Name: " Onur Cinar ", + } + + errs, ok := v2.CheckStruct(person) + if !ok { + fmt.Println(errs) + return + } + + fmt.Println(person.Name) +} +``` + +#### Output + +``` +Onur Cinar +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsASCII("Checker") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsAlphanumeric("ABcd1234") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsAmexCreditCard("378282246310005") + + if err != nil { + // Send the errors back to the user + } +} +``` + +
++ + + +```go +package main + +import ( + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsAnyCreditCard("6011111111111117") + + if err != nil { + // Send the errors back to the user + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsCIDR("2001:db8::/32") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsDigits("123456") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsDinersCreditCard("36227206271667") + + if err != nil { + // Send the errors back to the user + } +} +``` + +
++ + + +```go +package main + +import ( + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsDiscoverCreditCard("6011111111111117") + + if err != nil { + // Send the errors back to the user + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsEmail("test@example.com") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsFQDN("example.com") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsHex("0123456789abcdefABCDEF") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsIP("192.168.1.1") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsIPv4("192.168.1.1") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsIPv6("2001:db8::1") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsISBN("1430248270") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsJcbCreditCard("3530111333300000") + + if err != nil { + // Send the errors back to the user + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsLUHN("4012888888881881") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsMAC("00:1A:2B:3C:4D:5E") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsMasterCardCreditCard("5555555555554444") + + if err != nil { + // Send the errors back to the user + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsRegexp("^[0-9a-fA-F]+$", "ABcd1234") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + v2 "github.com/cinar/checker/v2" +) + +func main() { + value := "2024-12-31" + + _, err := v2.IsTime("DateOnly", value) + if err != nil { + panic(err) + } +} +``` + +
++ + + +```go +package main + +import ( + v2 "github.com/cinar/checker/v2" +) + +func main() { + rfc3339Layout := "2006-01-02T15:04:05Z07:00" + + value := "2024-12-31T10:20:00Z07:00" + + _, err := v2.IsTime(rfc3339Layout, value) + if err != nil { + panic(err) + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsURL("https://example.com") + if err != nil { + fmt.Println(err) + } +} +``` + +
++ + + +```go +package main + +import ( + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsUnionPayCreditCard("6200000000000005") + + if err != nil { + // Send the errors back to the user + } +} +``` + +
++ + + +```go +package main + +import ( + v2 "github.com/cinar/checker/v2" +) + +func main() { + _, err := v2.IsVisaCreditCard("4111111111111111") + + if err != nil { + // Send the errors back to the user + } +} +``` + +
++ + + +```go +package main + +import ( + "fmt" + "reflect" + + "github.com/cinar/checker/v2/locales" + + v2 "github.com/cinar/checker/v2" +) + +func main() { + locales.EnUSMessages["NOT_FRUIT"] = "Not a fruit name." + + v2.RegisterMaker("is-fruit", func(params string) v2.CheckFunc[reflect.Value] { + return func(value reflect.Value) (reflect.Value, error) { + stringValue := value.Interface().(string) + + if stringValue == "apple" || stringValue == "banana" { + return value, nil + } + + return value, v2.NewCheckError("NOT_FRUIT") + } + }) + + type Item struct { + Name string `checkers:"is-fruit"` + } + + person := &Item{ + Name: "banana", + } + + err, ok := v2.CheckStruct(person) + if !ok { + fmt.Println(err) + } +} +``` + +
+