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

私を助けてください

4

1 に答える 1

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
于 2013-04-27T06:31:08.763 に答える