1 Star 0 Fork 0

szmaozi / go-utils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
html.go 1.60 KB
一键复制 编辑 原始数据 按行查看 历史
szmaozi 提交于 2021-09-02 13:41 . wip: merge biob-v1
/*
* @Name:
* @Descripttion:
* @Warning:
* @version:
* @Author: moo
* @Date: 2021-01-09 14:03:49
* @LastEditors: moo
* @LastEditTime: 2021-05-19 17:51:09
*/
package utils
import (
"html"
"regexp"
"strings"
"unicode/utf8"
)
func StringSub(s string, length int) string {
var size, n int
for i := 0; i < length && n < len(s); i++ {
_, size = utf8.DecodeRuneInString(s[n:])
n += size
}
return s[:n]
}
func StringLen(s string) int {
return utf8.RuneCountInString(s)
}
func TrimHtml(sHtml string) string {
src := html.UnescapeString(sHtml)
//将HTML标签全转换成小写
re, _ := regexp.Compile("\\<[\\S\\s]+?\\>")
src = re.ReplaceAllStringFunc(src, strings.ToLower)
//去除STYLE
re, _ = regexp.Compile("\\<style[\\S\\s]+?\\</style\\>")
src = re.ReplaceAllString(src, "")
//去除SCRIPT
re, _ = regexp.Compile("\\<script[\\S\\s]+?\\</script\\>")
src = re.ReplaceAllString(src, "")
//去除所有尖括号内的HTML代码,并换成换行符
re, _ = regexp.Compile("\\<[\\S\\s]+?\\>")
// src = re.ReplaceAllString(src, "\n")
src = re.ReplaceAllString(src, " ")
//去除连续的换行符
re, _ = regexp.Compile("\\s{2,}")
// src = re.ReplaceAllString(src, "\n")
src = re.ReplaceAllString(src, "")
return strings.TrimSpace(src)
}
func TrimHtmlDesc(sHtml string, iLen int) string {
var iRtnLen int = 0
iTrimLen := StringLen(sHtml)
if iTrimLen > iLen+50 {
iTrimLen = iLen + 50
} else if iTrimLen > iLen {
iTrimLen = iLen
}
stripped := TrimHtml(StringSub(sHtml, iTrimLen))
iRtnLen = StringLen(stripped)
if iRtnLen > iLen {
iRtnLen = iLen
}
return StringSub(stripped, iRtnLen)
}
Go
1
https://gitee.com/szmaozi/go-utils.git
git@gitee.com:szmaozi/go-utils.git
szmaozi
go-utils
go-utils
29e02a007caf

搜索帮助