建立第三方庫
網上搜下了沒有很好的例子,我就找個了簡單的庫來參考著弄,中間改來改去,搞了幾個小時,也算成功了。
直接上效果
func main() {
res := filterStr.Cut.CutString("有錢沒錢回家過年", 3)
fmt.Println(res)
err := filterStr.Filter.FilStr("考試作弊")
fmt.Println(err)
}
// 結果
有錢沒
存在敏感詞
下面說下怎麼搞,俺也是新手,第一次搞,所以有啥問題,大家指導下,謝謝。
建立庫
這裡說明下庫是
git
庫,所以需要在自己的github.com
上建立。
拉取專案
可以使用命令列
git clone https://github.com/charliecen/filterStr.git
也可以使用視覺化工具
sourcetree
,根據個人喜歡。由於網路問題,我這裡拉取和提交用命令列,commit
就用sourcetree
注意,本地的檔案路徑必須是
/github.com/charliecen/filterStr
,如果不是則需要建立。後面需要用到
編輯程式碼
go.mod 內容
module github.com/charliecen/filterStr
程式碼檔案
這裡列出一個檔案
cut_str.go
,僅供參考
package filterStr
import (
"regexp"
"strings"
"unicode"
)
type cutStr struct {}
var Cut = new(cutStr)
func (c *cutStr) CutString(name string, length int) string {
// 去除前後空格
name = strings.TrimSpace(name)
// 請求引數字串
var newName = name
if len(name) > length {
// 判斷字串是否是中文
if c.isChineseChar(name) {
// 字串轉rune陣列,並擷取到有效位置
runeName := []rune(name)
newName = string(runeName[:length])
} else {
// 否則直接擷取有效位置
newName = name[:length]
}
}
return newName
}
// 判斷是否中文字元
func (c *cutStr) isChineseChar(str string) bool {
for _, r := range str {
if unicode.Is(unicode.Scripts["Han"], r) || (regexp.MustCompile("[\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b]").MatchString(string(r))) {
return true
}
}
return false
}
README
這個自己寫下說明,可以參考別人的
最後程式碼提交,並打下標籤,網路原因,我直接在瀏覽器裡新增了。
新增標籤
新建專案
// 新專案使用第三方包,由於剛上傳的程式碼,線上還未更新到最新版本,所以這裡需要指定最新版本號
# go get github.com/charliecen/filterStr@v1.0.2
go: downloading github.com/charliecen/filterStr v1.0.2
go get: upgraded github.com/charliecen/filterStr v1.0.1 => v1.0.2
下面就可以使用了,使用的方式在開始位置
如果需要用的外部檔案,例如配置檔案等,需要拷貝到當前專案的根目錄下,否則找不到。
本作品採用《CC 協議》,轉載必須註明作者和本文連結