确定字符是否是VB6中的字母的最佳方法是什么?

rav*_*ven 5 vb6

需要一个将字符作为参数的函数,如果是字母则返回true.

rav*_*ven 10

这是通过发布的代码的一部分rpetrich响应问题乔尔斯波斯基.我觉得它需要一个特定于它解决的问题的帖子.真的很棒.

Private Function IsLetter(ByVal character As String) As Boolean
    IsLetter = UCase$(character) <> LCase$(character)
End Function
Run Code Online (Sandbox Code Playgroud)

你可能会想,"这总能奏效吗?" 有关UCase和LCase功能的文档证实它将:

UCase函数只有小写字母转换为大写; 所有大写字母和非字母字符保持不变.

LCase功能只有大写字母转换为小写字母; 所有小写​​字母和非字母字符保持不变.

  • 这是超级优雅的,但仅适用于使用具有大小写变体的拉丁字母的语言. (2认同)

rpe*_*ich 4

Seanyboy 的IsCharAlphaA 答案很接近。最好的方法是使用 W 版本,如下所示:

Private Declare Function IsCharAlphaW Lib "user32" (ByVal cChar As Integer) As Long
Public Property Get IsLetter(character As String) As Boolean
    IsLetter = IsCharAlphaW(AscW(character))
End Property
Run Code Online (Sandbox Code Playgroud)

当然,这一切并不重要,因为所有 VB6 的控件都只是 ANSI