竹简文档

数据验证

手机号、身份证、邮箱、URL、密码强度等格式验证

数据验证

xUtil.Valid() 提供各种数据格式的验证函数,用于快速校验用户输入。

import xUtil "github.com/xiaolfeng/bamboo-base-go/common/utility"

入口函数

utility.go
func Valid() *pack.Valid

手机号验证

IsPhone

验证中国大陆手机号(1[3-9] 开头,11 位):

package/validate.go
func (v *Valid) IsPhone(phone string) bool
xUtil.Valid().IsPhone("13812345678")   // true
xUtil.Valid().IsPhone("12345678901")   // false(第二位不是 3-9)
xUtil.Valid().IsPhone("1381234567")    // false(不足 11 位)

身份证验证

IsIDCard

验证中国大陆身份证号(18 位):

package/validate.go
func (v *Valid) IsIDCard(idCard string) bool
xUtil.Valid().IsIDCard("110101199001011234")  // true
xUtil.Valid().IsIDCard("11010119900101123X")  // true(X 结尾)
xUtil.Valid().IsIDCard("123456789012345678")  // false

URL 验证

IsURI

验证 URL 格式:

package/validate.go
func (v *Valid) IsURI(url string) bool
xUtil.Valid().IsURI("https://example.com")        // true
xUtil.Valid().IsURI("http://localhost:8080/path") // true
xUtil.Valid().IsURI("ftp://example.com")          // false
xUtil.Valid().IsURI("example.com")                // false

IP 地址验证

IsIP

验证 IPv4 地址:

package/validate.go
func (v *Valid) IsIP(ip string) bool
xUtil.Valid().IsIP("192.168.1.1")     // true
xUtil.Valid().IsIP("255.255.255.255") // true
xUtil.Valid().IsIP("256.1.1.1")       // false
xUtil.Valid().IsIP("192.168.1")       // false

UUID 验证

IsUUID

验证 UUID 格式:

package/validate.go
func (v *Valid) IsUUID(uuid string) bool
xUtil.Valid().IsUUID("550e8400-e29b-41d4-a716-446655440000")  // true
xUtil.Valid().IsUUID("550e8400e29b41d4a716446655440000")      // false(缺少连字符)
xUtil.Valid().IsUUID("invalid-uuid")                          // false

字符类型验证

IsNumeric

检查是否只包含数字:

package/validate.go
func (v *Valid) IsNumeric(str string) bool
xUtil.Valid().IsNumeric("123456")    // true
xUtil.Valid().IsNumeric("123abc")    // false
xUtil.Valid().IsNumeric("")          // false

IsAlpha

检查是否只包含字母:

package/validate.go
func (v *Valid) IsAlpha(str string) bool
xUtil.Valid().IsAlpha("Hello")       // true
xUtil.Valid().IsAlpha("Hello123")    // false
xUtil.Valid().IsAlpha("")            // false

IsAlphaNumeric

检查是否只包含字母和数字:

package/validate.go
func (v *Valid) IsAlphaNumeric(str string) bool
xUtil.Valid().IsAlphaNumeric("Hello123")  // true
xUtil.Valid().IsAlphaNumeric("Hello_123") // false(包含下划线)
xUtil.Valid().IsAlphaNumeric("")          // false

用户名验证

IsUsername

验证用户名(4-20 位,字母开头,只能包含字母、数字、下划线):

package/validate.go
func (v *Valid) IsUsername(username string) bool
xUtil.Valid().IsUsername("xiao_lfeng")   // true
xUtil.Valid().IsUsername("user123")      // true
xUtil.Valid().IsUsername("123user")      // false(数字开头)
xUtil.Valid().IsUsername("ab")           // false(少于 4 位)

密码强度验证

IsStrongPassword

验证强密码(至少 8 位,包含大写、小写、数字、特殊字符):

package/validate.go
func IsStrongPassword(password string) bool
xUtil.IsStrongPassword("Abc123!@#")   // true
xUtil.IsStrongPassword("abc123!@#")   // false(缺少大写)
xUtil.IsStrongPassword("Abc12345")    // false(缺少特殊字符)
xUtil.IsStrongPassword("Abc!@#")      // false(少于 8 位)

范围验证

InRange

检查数值是否在指定范围内:

package/validate.go
func (v *Valid) InRange(value, min, max float64) bool
xUtil.Valid().InRange(5.5, 1.0, 10.0)   // true
xUtil.Valid().InRange(0.5, 1.0, 10.0)   // false
xUtil.Valid().InRange(10.5, 1.0, 10.0)  // false

IsLength

检查字符串长度是否在指定范围内:

package/validate.go
func (v *Valid) IsLength(str string, minLen, maxLen int) bool
xUtil.Valid().IsLength("hello", 1, 10)   // true
xUtil.Valid().IsLength("hi", 3, 10)      // false
xUtil.Valid().IsLength("hello world", 1, 5)  // false

JSON 格式验证

IsJSON

简单检查 JSON 格式:

package/validate.go
func (v *Valid) IsJSON(jsonStr string) bool
xUtil.Valid().IsJSON(`{"name":"test"}`)  // true
xUtil.Valid().IsJSON(`[1, 2, 3]`)        // true
xUtil.Valid().IsJSON(`invalid`)          // false
xUtil.Valid().IsJSON(``)                 // false

下一步

On this page