【助手】增加url函数

【助手】增加规则验证函数
【助手】优化md5函数
master
李光春 3 years ago
parent b893a2d58d
commit 982f835735

@ -1,11 +1,21 @@
## v1.0.8 / 2021-05-31
- 【助手】增加url函数
- 【助手】增加规则验证函数
- 【助手】优化md5函数
## v0.0.7 / 2021-05-31
- 【助手】增加请求函数
## v0.0.6 / 2021-05-29
- 【服务】修复拼多多参数
## v0.0.5 / 2021-05-29
- 增加拼多多联盟服务
## v0.0.4 / 2021-05-29
- 优化

@ -0,0 +1,49 @@
package header
import (
"encoding/json"
"net/url"
"strconv"
)
type Headers map[string]interface{}
func NewHeaders() Headers {
P := make(Headers)
return P
}
func (p Headers) Set(key string, value interface{}) {
p[key] = value
}
func (p Headers) SetHeaders(headers Headers) {
for key, value := range headers {
p[key] = value
}
}
func (p Headers) GetQuery() string {
u := url.Values{}
for k, v := range p {
u.Set(k, GetHeadersString(v))
}
return u.Encode()
}
func GetHeadersString(i interface{}) string {
switch v := i.(type) {
case string:
return v
case []byte:
return string(v)
case int:
return strconv.Itoa(v)
case bool:
return strconv.FormatBool(v)
default:
bytes, _ := json.Marshal(v)
return string(bytes)
}
return ""
}

@ -3,10 +3,18 @@ package md5
import (
"crypto/md5"
"encoding/hex"
"strings"
)
func MD5(str string) string {
func Md5(str string) string {
s := md5.New()
s.Write([]byte(str))
return hex.EncodeToString(s.Sum(nil))
}
func Md5ToUpper(str string) string {
h := md5.New()
h.Write([]byte(str))
cipherStr := h.Sum(nil)
return strings.ToUpper(hex.EncodeToString(cipherStr))
}

@ -0,0 +1,57 @@
package params
import (
"encoding/json"
"net/url"
"strconv"
)
type Params map[string]interface{}
func NewParams() Params {
P := make(Params)
return P
}
func NewParamsWithType(params ...Params) Params {
p := make(Params)
for _, v := range params {
p.SetParams(v)
}
return p
}
func (p Params) Set(key string, value interface{}) {
p[key] = value
}
func (p Params) SetParams(params Params) {
for key, value := range params {
p[key] = value
}
}
func (p Params) GetQuery() string {
u := url.Values{}
for k, v := range p {
u.Set(k, GetParamsString(v))
}
return u.Encode()
}
func GetParamsString(i interface{}) string {
switch v := i.(type) {
case string:
return v
case []byte:
return string(v)
case int:
return strconv.Itoa(v)
case bool:
return strconv.FormatBool(v)
default:
bytes, _ := json.Marshal(v)
return string(bytes)
}
return ""
}

@ -0,0 +1,30 @@
package preg
import (
"regexp"
)
// VerifyMobile 验证手机号码
// 移动134 135 136 137 138 139 147 150 151 152 157 158 159 178 182 183 184 187 188 198
// 联通130 131 132 145 155 156 166 171 175 176 185 186
// 电信133 149 153 173 177 180 181 189 199
// 虚拟运营商: 170 195
func VerifyMobile(mobile string) bool {
regular := "^[1](([3][0-9])|([4][5-9])|([5][0-3,5-9])|([6][5,6])|([7][0-8])|([8][0-9])|([9][1,5,8-9]))[0-9]{8}$"
reg := regexp.MustCompile(regular)
return reg.MatchString(mobile)
}
// VerifyIdCard 验证身份证号码
func VerifyIdCard(idCard string) bool {
regular := "^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$|^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$"
reg := regexp.MustCompile(regular)
return reg.MatchString(idCard)
}
// VerifyEmail 验证邮箱号码
func VerifyEmail(email string) bool {
pattern := `^[0-9a-z][_.0-9a-z-]{0,31}@([0-9a-z][0-9a-z-]{0,30}[0-9a-z]\.){1,4}[a-z]{2,4}$`
reg := regexp.MustCompile(pattern)
return reg.MatchString(email)
}

@ -0,0 +1,45 @@
package url
import (
"io"
"net/http"
"net/url"
"os"
)
// LenCode 编码
func LenCode(s string) string {
escape := url.QueryEscape(s)
return escape
}
// DeCode 解码
func DeCode(s string) string {
unescape, _ := url.QueryUnescape(s)
return unescape
}
// ParseQuery 获取URL参数 https://studygolang.com/articles/2876
func ParseQuery(s string) map[string][]string {
u, err := url.Parse(s)
if err != nil {
return nil
}
urlParam := u.RawQuery
m, _ := url.ParseQuery(urlParam)
return m
}
// QueryHeaders 获取Headers参数 https://blog.csdn.net/qq_31387691/article/details/109312920
func QueryHeaders(url string) map[string][]string {
client := &http.Client{}
reqest, err := http.NewRequest("GET", url, nil)
if err != nil {
return nil
}
response, _ := client.Do(reqest)
stdout := os.Stdout
_, err = io.Copy(stdout, response.Body)
headers := response.Header
return headers
}
Loading…
Cancel
Save