1

テキストボックスを検証しようとしています。ユーザーがすべて小文字を入力した場合は、すべて大文字に変換します。したがって、データベースに追加されると、すべて大文字になります。関数のヘルプが必要です。構文エラーなのか何かわかりません。ここにあります。私はVB.Net 2010を使用しています

Public Function CheckLetters(ByVal strIn As String) As Boolean

    Dim i As Integer
    Dim strOne As String

    For i = 0 To Len(strIn) - 1

        strOne = strIn.Substring(i, 1).ToUpper
        Select Case strOne

            Case "A" To "Z"
            Case Else

                Return False
        End Select
    Next

    Return True
End Function
4

2 に答える 2

1

これはどうですか:

Return Regex.IsMatch(strIn, "^[a-z]*$")

またはこれ

Return strIn.All(Function(c) Char.IsLower(c))

このメソッドがワンライナー以外のものである正当な理由はありません。ただし、本当に文字をループしたい場合は、次のようにします。

For Each c As Char In strIn
   If Not Char.IsLower(c) Then Return False
Next c
Return True
于 2012-10-04T04:01:53.213 に答える
0

コードはここで問題なく実行されます(VBはToUpperの後に角かっこを必要としませんが、読みやすさには優れています)-文字列を受け入れ、その文字列に「A」から「Z」までの文字のみが含まれている場合はTrueを返し、そうでない場合はfalseを返します。この関数は何も変換せず、ブール結果を返すだけです。

文字列を実際に大文字に変換する場合は、文字列自体に.ToUpper()を使用します。

Dim MyString As String = "Contains some text"

MyString = MyString.ToUpper()

' Above would set MyString to "CONTAINS SOME TEXT"
于 2012-10-03T22:35:35.827 に答える