验证文本框值以包含某些字符串

时间:2012-10-17 02:22:42

标签: forms validation vb.net-2010

我有一个VB.NET表单,用户可以从40个不同的值中选择。 我想要的不是一个包含所有40个值的dropbox来使用一个文本框,该文本框验证用户给出的搅拌是否是这40个单词中的一个值。

所以例如我需要用户写东西并验证字符串是40个保留字之一,如“紧急”,“发布”......也许这些单词存储在数组中,然后比较用户写的内容?

TextBox1.Text.Contains("urgent")
TextBox1.Text.Contains("post")
TextBox1.Text.Contains("standard")
TextBox1.Text.Contains("stay")

也许是方法

Public Function Contains(ByVal value As String) As Boolean   
    Return (   TextBox1.Text(value, ...) >= 0)
End Function 

最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以使用Contains方法创建保留字的List(of String),以使用您的Contains函数检查输入的内容是否是其中之一。我不确定你将要解析的文本有多大,所以我将它分成单个单词。

Public Class Form1
    Dim reservedWords As List(Of String) = New List(Of String)({"urgent", "post", "standard", "stay"})

    Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
        Dim text As String = CType(sender, TextBox).Text
        If ContainsReservedWord(text) Then Beep()
    End Sub

    Public Function ContainsReservedWord(value As String) As Boolean
        Dim x As Integer
        Dim stringSplit As String() = value.Split
        If stringSplit.Count > 0 Then
            For x = 0 To stringSplit.Count - 1
                If reservedWords.Contains(LCase(stringSplit(x))) Then  Return True
            Next
        End If
        Return False
    End Function

End Class

答案 1 :(得分:0)

使用以下代码验证属于保留字的字符串。

var lstReservedWords = new List<string> {"urgent", "post", "standard", "stay", .......};
bool isReservedWord = lstReservedWords.Any(r => String.Compare(r, TextBox1.Text, true) == 0);

希望这有帮助。