1
0

StringUtil.go 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. package Utils
  2. import (
  3. "bytes"
  4. "fmt"
  5. "regexp"
  6. "strconv"
  7. "strings"
  8. )
  9. func ToInt(str string) int {
  10. _num, _ := strconv.Atoi(str)
  11. return _num
  12. }
  13. func ToInt64(str string) int64 {
  14. _num, _ := strconv.ParseInt(str, 10, 64)
  15. return _num
  16. }
  17. func ToInteger(str string) (int, error) {
  18. _num, _err := strconv.Atoi(str)
  19. return _num, _err
  20. }
  21. func ToLong(str string) (int64, error) {
  22. _num, _err := strconv.ParseInt(str, 10, 64)
  23. return _num, _err
  24. }
  25. func ToFloat64(str string) (float64, error) {
  26. _num, _err := strconv.ParseFloat(str, 64)
  27. return _num, _err
  28. }
  29. func BinaryToInt(str string) (int64, error) {
  30. _num, _err := strconv.ParseInt(str, 2, 64)
  31. return _num, _err
  32. }
  33. func IntToBinary(num int64) string {
  34. bin := strconv.FormatInt(num, 2)
  35. return bin
  36. }
  37. func IsBinaryOverInt(binStr string, number int64) bool {
  38. _num, _ := strconv.ParseInt(binStr, 2, 64)
  39. return (_num & number) == number
  40. }
  41. func IsBinNumOverInt(binNum int64, number int64) bool {
  42. return (binNum & number) == number
  43. }
  44. func ToStr(_num int) string {
  45. return strconv.Itoa(_num)
  46. }
  47. func FormatInt(_num int) string {
  48. return strconv.FormatInt(int64(_num), 10)
  49. }
  50. func FormatInt64(_num int64) string {
  51. return strconv.FormatInt(_num, 10)
  52. }
  53. func FormatFloat64(_num float64) string {
  54. return strconv.FormatFloat(_num, 'f', 2, 64)
  55. }
  56. func IsEmpty(str string) bool {
  57. return Len(str) <= 0
  58. }
  59. func IsNotEmpty(str string) bool {
  60. return !IsEmpty(str)
  61. }
  62. func Replace(str string, find string, to string) string {
  63. return strings.Replace(str, find, to, 1)
  64. }
  65. func ReplaceAll(str string, find string, to string) string {
  66. return strings.Replace(str, find, to, -1)
  67. }
  68. func Split(str string, spChar string) []string {
  69. return strings.Split(str, spChar)
  70. }
  71. func Contains(str string, find string) bool {
  72. return strings.Contains(str, find)
  73. }
  74. // strings.HasPrefix("ABC_xyz", "ABC")
  75. func StartsWith(str string, find string) bool {
  76. return strings.HasPrefix(str, find)
  77. }
  78. // strings.HasSuffix("ABC_xyz", "xyz")
  79. func EndsWith(str string, find string) bool {
  80. return strings.HasSuffix(str, find)
  81. }
  82. // strings.Count("cheese", "e") = 3
  83. func Count(str string, find string) int {
  84. return strings.Count(str, find)
  85. }
  86. // 返回第一个匹配字符的位置,返回-1为未找到
  87. // strings.Index("ABC_xyz", "xyz") = 4
  88. // strings.Index("ABC_xyz", "B") = 1
  89. func Index(str string, find string) int {
  90. return strings.Index(str, find)
  91. }
  92. //strings.Join(arrays, ",") = "foo, bar, bas"
  93. func Join(strs []string, spChar string) string {
  94. return strings.Join(strs, spChar)
  95. }
  96. // 字母转为小写
  97. // strings.ToLower("Love GoLang") = "love golang"
  98. func ToLower(str string) string {
  99. return strings.ToLower(str)
  100. }
  101. // 字母转为大写
  102. // strings.ToTitle("love 中国") = "LOVE 中国"
  103. func ToUpper(str string) string {
  104. return strings.ToUpper(str)
  105. //return strings.ToTitle(str)
  106. }
  107. func Len(str string) int {
  108. return len(str)
  109. }
  110. func Print(str string) {
  111. //var show = fmt.Println
  112. //show(str)
  113. fmt.Println(str)
  114. }
  115. func FilterByRegex(expr, input, placeTo string) string {
  116. regx, _ := regexp.Compile(expr)
  117. return regx.ReplaceAllString(input, placeTo)
  118. }
  119. func FilterStyle(input string) string {
  120. //regx, _ := regexp.Compile("<style((?:.|\\n)*?)</style>")
  121. regx, _ := regexp.Compile("\\<style[\\S\\s]+?\\</style\\>")
  122. return regx.ReplaceAllString(input, "")
  123. }
  124. func FilterScript(input string) string {
  125. //regx, _ := regexp.Compile("<script((?:.|\\n)*?)</script>")
  126. regx, _ := regexp.Compile("\\<script[\\S\\s]+?\\</script\\>")
  127. return regx.ReplaceAllString(input, "")
  128. }
  129. func FilterHtml(input string) string {
  130. regx, _ := regexp.Compile("<.+?>")
  131. //regx, _ := regexp.Compile("\\<[\\S\\s]+?\\>")
  132. return regx.ReplaceAllString(input, "")
  133. }
  134. func FilterA(input string) string {
  135. regx, _ := regexp.Compile("<.?a(.|\n)*?>")
  136. return regx.ReplaceAllString(input, "")
  137. }
  138. func FilterImage(input string) string {
  139. regx, _ := regexp.Compile("<img(.|\\n)*?>")
  140. return regx.ReplaceAllString(input, "")
  141. }
  142. func FilterSpecialChar(input string) string {
  143. regx, _ := regexp.Compile("[+=|{}':;',]")
  144. return regx.ReplaceAllString(input, "")
  145. }
  146. func FilterUrlPrefix(input string) string {
  147. regx, _ := regexp.Compile("\\w+://")
  148. return regx.ReplaceAllString(input, "")
  149. }
  150. func IsNumber(input string) bool {
  151. match, _ := regexp.MatchString("^\\d+$", input)
  152. return match
  153. }
  154. func IsIP(input string) bool {
  155. 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)
  156. return match
  157. }
  158. func IsEMail(input string) bool {
  159. match, _ := regexp.MatchString("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$", input)
  160. return match
  161. }
  162. //高效拼接字符串
  163. func LinkStrs(inputs ...string) string {
  164. var buf bytes.Buffer
  165. for _, v := range inputs {
  166. buf.WriteString(v)
  167. }
  168. return buf.String()
  169. }
  170. func LinkInputs(inputs ...interface{}) string {
  171. var buf bytes.Buffer
  172. for _, v := range inputs {
  173. switch t := v.(type) {
  174. case string:
  175. buf.WriteString(t)
  176. default:
  177. buf.WriteString(fmt.Sprint(t))
  178. }
  179. }
  180. return buf.String()
  181. }
  182. // func LinkInputs(inputs ...interface{}) string {
  183. // var buf bytes.Buffer
  184. // for _, v := range inputs {
  185. // switch t := v.(type) {
  186. // case string:
  187. // buf.WriteString(t)
  188. // //case int, int64:
  189. // case int64:
  190. // buf.WriteString(FormatInt64(t))
  191. // case int:
  192. // buf.WriteString(FormatInt(t))
  193. // case float64:
  194. // buf.WriteString(FormatFloat64(t))
  195. // default:
  196. // buf.WriteString(fmt.Sprint(t))
  197. // }
  198. // fmt.Println("v:", v)
  199. // }
  200. // return buf.String()
  201. // }
粤ICP备19079148号