1.背景
2.strchecker介紹
go install github.com/studyzy/go-strchecker/cmd/strchecker@latest
strchecker $GOPATH/src/github.com/studyzy/go-strchecker/testdata
0 /Users/devinzeng/go/src/github.com/studyzy/go-strchecker/testdata/call.go:9:60 has invalid string: "!" 1 /Users/devinzeng/go/src/github.com/studyzy/go-strchecker/testdata/call.go:10:11 has invalid string: "a!b" 2 /Users/devinzeng/go/src/github.com/studyzy/go-strchecker/testdata/call.go:11:5 has invalid string: "aa!" 3 /Users/devinzeng/go/src/github.com/studyzy/go-strchecker/testdata/call.go:12:40 has invalid string: "bb!" 4 /Users/devinzeng/go/src/github.com/studyzy/go-strchecker/testdata/main.go:10:30 has invalid string: "not found!" 5 /Users/devinzeng/go/src/github.com/studyzy/go-strchecker/testdata/main.go:12:17 has invalid string: "no,data!" 6 /Users/devinzeng/go/src/github.com/studyzy/go-strchecker/testdata/main.go:15:14 has invalid string: "Hello,World!" 7 /Users/devinzeng/go/src/github.com/studyzy/go-strchecker/testdata/main.go:16:12 has invalid string: "Current time:" 8 /Users/devinzeng/go/src/github.com/studyzy/go-strchecker/testdata/main.go:19:15 has invalid string: "한국어" 9 /Users/devinzeng/go/src/github.com/studyzy/go-strchecker/testdata/main.go:20:15 has invalid string: "にほんご" 10 /Users/devinzeng/go/src/github.com/studyzy/go-strchecker/testdata/main.go:22:14 has invalid string: ":) 😁😁😁"
strchecker -invalid-type=1 ./testdata/...
0 testdata/main.go:19:15 has invalid string: "한국어" 1 testdata/main.go:20:15 has invalid string: "にほんご" 2 testdata/main.go:22:14 has invalid string: ":) 😁😁😁"
3.結論
strchecker是一個專門用於掃描Golang源碼中字符串是否包含特定正則表達式的Lint工具。使用strchecker可以快速找到Go源碼中字符串中隱藏的中文標點、非中英文字符等,很適合用於國人在大型go項目中掃描日誌輸出或者其他字符串定義時不小心出現的中文標點的情況。
當然,如果本身項目的源碼中連註釋都不允許用中文和中文標點,那麼就直接用IDE的search功能即可,本工具是不掃描源碼中註釋的內容的。