2013-04-27 60 views
0

我一直在試圖拒絕這些元字符^ $ \ /()| ? + * [] {}> <從我的所有文本框中的一種形式。如何使用正則表達式來拒絕元字符

這就是我所擁有的,它不拒絕人物。它拒絕輸入到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 

請幫我

回答

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