如何使用正则表达式拒绝元字符

时间:2013-04-27 06:20:50

标签: asp.net vb.net server-side

我一直试图拒绝这些元字符^ $ \ /()| ? + * [] {}><来自我表格中的所有文本框。

这就是我所拥有的,它不会拒绝这些角色。它拒绝输入textbox3的任何内容。

Imports System.Text.RegularExpressions

Partial Class Default2
Inherits System.Web.UI.Page

Protected Sub company(source As Object, e As ServerValidateEventArgs) 
    If Not Regex.IsMatch(TextBox3.Text, Regex.Escape("^$\/()|?+[]{}><")) Then
        e.IsValid = False
    Else
        e.IsValid = True
    End If
End Sub
End Class

请帮帮我

1 个答案:

答案 0 :(得分:2)

检查文本是否包含任何正则表达式元字符的2种方法:

方法1:使用正则表达式

元字符需要放在字符类[...]中。因此,只需要转义部分字符,即:^\]

    If Regex.IsMatch(TextBox1.Text, "[\^$\\/()|?+[\]{}><]") Then
        ' Invalid input
    Else
        ' Valid
    End If

方法2:使用IndexOfAny字符串函数

此方法不使用正则表达式,因此无需转义。

    If TextBox1.Text.IndexOfAny("^$\/()|?+[]{}><".ToCharArray) > -1 Then
        ' Invalid input
    Else
        ' Valid
    End If