| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
- package Utils
- import (
- "bytes"
- "fmt"
- "regexp"
- "strconv"
- "strings"
- )
- func ToInt(str string) int {
- _num, _ := strconv.Atoi(str)
- return _num
- }
- func ToInt64(str string) int64 {
- _num, _ := strconv.ParseInt(str, 10, 64)
- return _num
- }
- func ToInteger(str string) (int, error) {
- _num, _err := strconv.Atoi(str)
- return _num, _err
- }
- func ToLong(str string) (int64, error) {
- _num, _err := strconv.ParseInt(str, 10, 64)
- return _num, _err
- }
- func ToFloat64(str string) (float64, error) {
- _num, _err := strconv.ParseFloat(str, 64)
- return _num, _err
- }
- func BinaryToInt(str string) (int64, error) {
- _num, _err := strconv.ParseInt(str, 2, 64)
- return _num, _err
- }
- func IntToBinary(num int64) string {
- bin := strconv.FormatInt(num, 2)
- return bin
- }
- func IsBinaryOverInt(binStr string, number int64) bool {
- _num, _ := strconv.ParseInt(binStr, 2, 64)
- return (_num & number) == number
- }
- func IsBinNumOverInt(binNum int64, number int64) bool {
- return (binNum & number) == number
- }
- func ToStr(_num int) string {
- return strconv.Itoa(_num)
- }
- func FormatInt(_num int) string {
- return strconv.FormatInt(int64(_num), 10)
- }
- func FormatInt64(_num int64) string {
- return strconv.FormatInt(_num, 10)
- }
- func FormatFloat64(_num float64) string {
- return strconv.FormatFloat(_num, 'f', 2, 64)
- }
- func IsEmpty(str string) bool {
- return Len(str) <= 0
- }
- func IsNotEmpty(str string) bool {
- return !IsEmpty(str)
- }
- func Replace(str string, find string, to string) string {
- return strings.Replace(str, find, to, 1)
- }
- func ReplaceAll(str string, find string, to string) string {
- return strings.Replace(str, find, to, -1)
- }
- func Split(str string, spChar string) []string {
- return strings.Split(str, spChar)
- }
- func Contains(str string, find string) bool {
- return strings.Contains(str, find)
- }
- // strings.HasPrefix("ABC_xyz", "ABC")
- func StartsWith(str string, find string) bool {
- return strings.HasPrefix(str, find)
- }
- // strings.HasSuffix("ABC_xyz", "xyz")
- func EndsWith(str string, find string) bool {
- return strings.HasSuffix(str, find)
- }
- // strings.Count("cheese", "e") = 3
- func Count(str string, find string) int {
- return strings.Count(str, find)
- }
- // 返回第一个匹配字符的位置,返回-1为未找到
- // strings.Index("ABC_xyz", "xyz") = 4
- // strings.Index("ABC_xyz", "B") = 1
- func Index(str string, find string) int {
- return strings.Index(str, find)
- }
- //strings.Join(arrays, ",") = "foo, bar, bas"
- func Join(strs []string, spChar string) string {
- return strings.Join(strs, spChar)
- }
- // 字母转为小写
- // strings.ToLower("Love GoLang") = "love golang"
- func ToLower(str string) string {
- return strings.ToLower(str)
- }
- // 字母转为大写
- // strings.ToTitle("love 中国") = "LOVE 中国"
- func ToUpper(str string) string {
- return strings.ToUpper(str)
- //return strings.ToTitle(str)
- }
- func Len(str string) int {
- return len(str)
- }
- func Print(str string) {
- //var show = fmt.Println
- //show(str)
- fmt.Println(str)
- }
- func FilterByRegex(expr, input, placeTo string) string {
- regx, _ := regexp.Compile(expr)
- return regx.ReplaceAllString(input, placeTo)
- }
- func FilterStyle(input string) string {
- //regx, _ := regexp.Compile("<style((?:.|\\n)*?)</style>")
- regx, _ := regexp.Compile("\\<style[\\S\\s]+?\\</style\\>")
- return regx.ReplaceAllString(input, "")
- }
- func FilterScript(input string) string {
- //regx, _ := regexp.Compile("<script((?:.|\\n)*?)</script>")
- regx, _ := regexp.Compile("\\<script[\\S\\s]+?\\</script\\>")
- return regx.ReplaceAllString(input, "")
- }
- func FilterHtml(input string) string {
- regx, _ := regexp.Compile("<.+?>")
- //regx, _ := regexp.Compile("\\<[\\S\\s]+?\\>")
- return regx.ReplaceAllString(input, "")
- }
- func FilterA(input string) string {
- regx, _ := regexp.Compile("<.?a(.|\n)*?>")
- return regx.ReplaceAllString(input, "")
- }
- func FilterImage(input string) string {
- regx, _ := regexp.Compile("<img(.|\\n)*?>")
- return regx.ReplaceAllString(input, "")
- }
- func FilterSpecialChar(input string) string {
- regx, _ := regexp.Compile("[+=|{}':;',]")
- return regx.ReplaceAllString(input, "")
- }
- func FilterUrlPrefix(input string) string {
- regx, _ := regexp.Compile("\\w+://")
- return regx.ReplaceAllString(input, "")
- }
- func IsNumber(input string) bool {
- match, _ := regexp.MatchString("^\\d+$", input)
- return match
- }
- func IsIP(input string) bool {
- match, _ := regexp.MatchString("^((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)$", input)
- return match
- }
- func IsEMail(input string) bool {
- match, _ := regexp.MatchString("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$", input)
- return match
- }
- //高效拼接字符串
- func LinkStrs(inputs ...string) string {
- var buf bytes.Buffer
- for _, v := range inputs {
- buf.WriteString(v)
- }
- return buf.String()
- }
- func LinkInputs(inputs ...interface{}) string {
- var buf bytes.Buffer
- for _, v := range inputs {
- switch t := v.(type) {
- case string:
- buf.WriteString(t)
- default:
- buf.WriteString(fmt.Sprint(t))
- }
- }
- return buf.String()
- }
- // func LinkInputs(inputs ...interface{}) string {
- // var buf bytes.Buffer
- // for _, v := range inputs {
- // switch t := v.(type) {
- // case string:
- // buf.WriteString(t)
- // //case int, int64:
- // case int64:
- // buf.WriteString(FormatInt64(t))
- // case int:
- // buf.WriteString(FormatInt(t))
- // case float64:
- // buf.WriteString(FormatFloat64(t))
- // default:
- // buf.WriteString(fmt.Sprint(t))
- // }
- // fmt.Println("v:", v)
- // }
- // return buf.String()
- // }
|