确定字符是字母还是数字

时间:2014-01-03 14:23:02

标签: string go unicode-string

鉴于Go字符串是unicode,有没有办法安全地确定字符(例如字符串中的第一个字母)是字母还是数字?在过去,我只会检查ASCII字符范围,但我怀疑使用unicode字符串会非常可靠。

1 个答案:

答案 0 :(得分:5)

您始终可以在unicode包中使用func IsNumber(r rune) bool

if unicode.IsNumber(rune) { ... }

请注意,这包括的字符数不仅仅是0-9,例如罗马数字(例如.Ⅲ)或分数(例如⅒)。如果您特别想要检查0-9,那么您应该像过去那样做(是的,它是UTF-8安全的):

if rune >= 48 && rune <= 57 { ... }

if rune >= '0' && rune <= '9' { ... } // as suggested by Martin Gallagher

对于字母,unicode包具有类似的功能:func IsLetter(r rune) bool