数据验证
手机号、身份证、邮箱、URL、密码强度等格式验证
数据验证
xUtil.Valid() 提供各种数据格式的验证函数,用于快速校验用户输入。
import xUtil "github.com/xiaolfeng/bamboo-base-go/common/utility"入口函数
func Valid() *pack.Valid手机号验证
IsPhone
验证中国大陆手机号(1[3-9] 开头,11 位):
func (v *Valid) IsPhone(phone string) boolxUtil.Valid().IsPhone("13812345678") // true
xUtil.Valid().IsPhone("12345678901") // false(第二位不是 3-9)
xUtil.Valid().IsPhone("1381234567") // false(不足 11 位)身份证验证
IsIDCard
验证中国大陆身份证号(18 位):
func (v *Valid) IsIDCard(idCard string) boolxUtil.Valid().IsIDCard("110101199001011234") // true
xUtil.Valid().IsIDCard("11010119900101123X") // true(X 结尾)
xUtil.Valid().IsIDCard("123456789012345678") // falseURL 验证
IsURI
验证 URL 格式:
func (v *Valid) IsURI(url string) boolxUtil.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") // falseIP 地址验证
IsIP
验证 IPv4 地址:
func (v *Valid) IsIP(ip string) boolxUtil.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") // falseUUID 验证
IsUUID
验证 UUID 格式:
func (v *Valid) IsUUID(uuid string) boolxUtil.Valid().IsUUID("550e8400-e29b-41d4-a716-446655440000") // true
xUtil.Valid().IsUUID("550e8400e29b41d4a716446655440000") // false(缺少连字符)
xUtil.Valid().IsUUID("invalid-uuid") // false字符类型验证
IsNumeric
检查是否只包含数字:
func (v *Valid) IsNumeric(str string) boolxUtil.Valid().IsNumeric("123456") // true
xUtil.Valid().IsNumeric("123abc") // false
xUtil.Valid().IsNumeric("") // falseIsAlpha
检查是否只包含字母:
func (v *Valid) IsAlpha(str string) boolxUtil.Valid().IsAlpha("Hello") // true
xUtil.Valid().IsAlpha("Hello123") // false
xUtil.Valid().IsAlpha("") // falseIsAlphaNumeric
检查是否只包含字母和数字:
func (v *Valid) IsAlphaNumeric(str string) boolxUtil.Valid().IsAlphaNumeric("Hello123") // true
xUtil.Valid().IsAlphaNumeric("Hello_123") // false(包含下划线)
xUtil.Valid().IsAlphaNumeric("") // false用户名验证
IsUsername
验证用户名(4-20 位,字母开头,只能包含字母、数字、下划线):
func (v *Valid) IsUsername(username string) boolxUtil.Valid().IsUsername("xiao_lfeng") // true
xUtil.Valid().IsUsername("user123") // true
xUtil.Valid().IsUsername("123user") // false(数字开头)
xUtil.Valid().IsUsername("ab") // false(少于 4 位)密码强度验证
IsStrongPassword
验证强密码(至少 8 位,包含大写、小写、数字、特殊字符):
func IsStrongPassword(password string) boolxUtil.IsStrongPassword("Abc123!@#") // true
xUtil.IsStrongPassword("abc123!@#") // false(缺少大写)
xUtil.IsStrongPassword("Abc12345") // false(缺少特殊字符)
xUtil.IsStrongPassword("Abc!@#") // false(少于 8 位)范围验证
InRange
检查数值是否在指定范围内:
func (v *Valid) InRange(value, min, max float64) boolxUtil.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) // falseIsLength
检查字符串长度是否在指定范围内:
func (v *Valid) IsLength(str string, minLen, maxLen int) boolxUtil.Valid().IsLength("hello", 1, 10) // true
xUtil.Valid().IsLength("hi", 3, 10) // false
xUtil.Valid().IsLength("hello world", 1, 5) // falseJSON 格式验证
IsJSON
简单检查 JSON 格式:
func (v *Valid) IsJSON(jsonStr string) boolxUtil.Valid().IsJSON(`{"name":"test"}`) // true
xUtil.Valid().IsJSON(`[1, 2, 3]`) // true
xUtil.Valid().IsJSON(`invalid`) // false
xUtil.Valid().IsJSON(``) // false