正则表达式匹配以验证多个文本框?

时间:2015-01-24 20:50:13

标签: regex vb.net validation textbox match

If Not Regex.Match(txt_Username.Text, "^[a-zA-Z0-9]*$", RegexOptions.IgnoreCase).Success Then

如何更改此行,以便检查txt_Password和txt_Username?

由于

3 个答案:

答案 0 :(得分:1)

您可以先创建一个正则表达式对象,然后使用其实例方法来共享正则表达式,如下所示:

Dim checker As Regex = New Regex("^[a-zA-Z0-9]*$", RegexOptions.IgnoreCase)
If Not checker.Match(txt_Username.Text).Success OrElse Not checker.Match(txt_Password.Text).Success

答案 1 :(得分:0)

另一种方法是创建要测试的值的数组,然后使用Array.TrueForAll()。此示例还确保它们都不是空白的:

    Dim values() As String = {txt_Username.Text, txt_Password.Text}
    If Not Array.TrueForAll(values, Function(x) Regex.IsMatch(x, "^[a-zA-Z0-9]*$", RegexOptions.IgnoreCase)) _
        OrElse Not Array.TrueForAll(values, Function(x) x.Trim.Length > 0) Then

        MessageBox.Show("Invalid UserName and/or Password")

    End If

只需要两个TextBox就有点过分,但只需要在工具箱中保留,以便在需要检查一系列TextBox时。

答案 2 :(得分:0)

Regex可以通过使用静态方法应用,也可以通过创建可重用的Regex实例来应用:

Dim validator As New Regex("^[a-zA-Z0-9]*$", RegexOptions.IgnoreCase)
If Not validator.IsMatch(txt_Username.Text) OrElse _
   Not validator.IsMatch(txt_Password.Text) Then
   ...
End If