From 12aa33e37d36500c3c1520d7384c9faa088dbb66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E4=B8=AB=E8=AE=B2=E6=A2=B5?= Date: Fri, 5 Aug 2022 15:25:14 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=92=20fix:=20=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E5=88=86=E7=BB=84=E5=90=8D=E5=AD=97=E6=9C=89=E8=8B=B1=E6=96=87?= =?UTF-8?q?=E4=B8=8E=E6=95=B0=E5=AD=97=E7=BB=84=E5=90=88=E7=9A=84=E6=83=85?= =?UTF-8?q?=E5=86=B5,=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=B3=A8=E9=87=8A=E8=AF=B4=E6=98=8E=20(#105)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.yml | 1 + public/tools/type.go | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/config.yml b/config.yml index fd0ba72..c1e5ca6 100644 --- a/config.yml +++ b/config.yml @@ -101,6 +101,7 @@ ldap: group-name-modify: false # 是否允许更改用户DN user-name-modify: false +# 📢 即便用不到如下三段配置信息,也不要删除,否则会有一些奇怪的错误出现 dingtalk: # 配置获取详细文档参考: http://ldapdoc.eryajf.net/pages/94f43a/ flag: "dingtalk" # 作为钉钉在平台的标识 diff --git a/public/tools/type.go b/public/tools/type.go index f7bf430..178040c 100644 --- a/public/tools/type.go +++ b/public/tools/type.go @@ -17,6 +17,12 @@ func isEnglish(str string) bool { return match } +// 是否为英文与数字组合 +func isEnglishAndNum(str string) bool { + match, _ := regexp.MatchString(`^[a-zA-Z0-9_-]+$`, str) + return match +} + // 是否全为中文 func isChinese(s string) bool { for _, r := range s { @@ -32,7 +38,8 @@ func isChinese(s string) bool { 1.如果名字中有横杠或者下划线连接,将会删去下划线再处理 2.全是中文:直接转拼音 3.全是英文:不进行处理,原文呈现 - 4.如果是中英混合,那么分以下几种情况 + 4.英文与数字组合,不进行处理,原文呈现 + 5.如果是中英混合,那么分以下几种情况 1.开头是中文,结尾不是中文:进入Convert逻辑第一种 2.开头不是中文,结尾不是中文:进入Convert逻辑第一种 3.开头不是中文,结尾是中文:进入Convert逻辑第三种 @@ -56,7 +63,7 @@ func Convert(src string) string { if isChinese(src) { // 全是中文 return strings.Join(pinyin.LazyConvert(src, nil), "") } - if isEnglish(src) { // 全是英文 + if isEnglish(src) || isEnglishAndNum(src) { // 全是英文,或者为英文与数字组合 return src }