// Copyright GoFrame Author(https://goframe.org). All Rights Reserved. // // This Source Code Form is subject to the terms of the MIT License. // If a copy of the MIT was not distributed with this file, // You can obtain one at https://github.com/gogf/gf. package builtin import ( "errors" "github.com/gogf/gf/v2/text/gregex" ) // RuleDomain implements `domain` rule: // Domain. // // Format: domain type RuleDomain struct{} func init() { Register(RuleDomain{}) } func (r RuleDomain) Name() string { return "domain" } func (r RuleDomain) Message() string { return "The {field} value `{value}` is not a valid domain format" } func (r RuleDomain) Run(in RunInput) error { ok := gregex.IsMatchString( `^([0-9a-zA-Z][0-9a-zA-Z\-]{0,62}\.)+([a-zA-Z]{0,62})$`, in.Value.String(), ) if ok { return nil } return errors.New(in.Message) }