package utils import ( "math" "math/rand" "strconv" "time" ) const ( RegPhoneNumber = `^1[3456789]\d{9}$` RegEmailNumber = `^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$` RegNumberAndChar = `^\w+$` RegVersionNumber = `^([1-9]\d|[1-9])(.([1-9]\d|\d)){2}$` ) func GetInvitation() string { var bs = make([]byte, 6) for i := 0; i < 6; i++ { r := rand.New(rand.NewSource(time.Now().UnixNano())) flag := r.Intn(2) if flag == 1 { bs[i] = byte(rand.Float64()*10 + 48) } else { bs[i] = byte(rand.Float64()*26 + 65) } } return string(bs) } func GetInvitationLen(length int) string { var bs = make([]byte, length) for i := 0; i < length; i++ { r := rand.New(rand.NewSource(time.Now().UnixNano())) flag := r.Intn(3) if flag == 1 { bs[i] = byte(rand.Float64()*10 + 48) } else if flag == 0 { bs[i] = byte(rand.Float64()*26 + 65) } else { bs[i] = byte(rand.Float64()*26 + 97) } } return string(bs) } func GetInvitationLowerLen(length int) string { var bs = make([]byte, length) for i := 0; i < length; i++ { r := rand.New(rand.NewSource(time.Now().UnixNano())) flag := r.Intn(2) if flag == 1 { bs[i] = byte(rand.Float64()*10 + 48) } else { bs[i] = byte(rand.Float64()*26 + 97) } } return string(bs) } func StringFloat64ToInt(s string) int { f1, err := strconv.ParseFloat(s, 64) if err != nil { return 0 } s1 := strconv.FormatFloat(math.Ceil(f1), 'f', -1, 64) i, _ := strconv.Atoi(s1) return i }