2013-04-27 5 views
0

Я пытаюсь выполнить проверку на стороне сервера, которая блокирует «^ $ /() |? + [] {}> <" Метасимволы Любой может дать мне некоторое представление о том, почему это. Я новичок в этом:/(TextBox3 является осина textboxe, который принимает входной)Проверка на стороне сервера в VB

Imports System.Text.RegularExpressions 

Partial Class Default2 
Inherits System.Web.UI.Page 

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 

    If Regex.IsMatch(TextBox3.Text, "^$\/()|?+[]{}><") Then 
     Label1.Text = "Invalid input" 

    End If 
End Sub 
End Class 

ОШИБКА:

Exception Details: System.ArgumentException: parsing "^$\/()|?+[]{}><" - Unterminated  [] set. 
+0

Определить, что «не работает». Кроме того, что означает 'form1'? –

+0

Почему вы используете 'form1.InnerText'? Что вы ожидаете, что вернется? – ajakblackgoat

ответ

0

Это потому, что строка ^$\/()|?+[]{}>< является регулярными выражениями метасимволов. Вы должны избавиться от них, прежде чем переходить к регулярному выражению функции:

If Regex.IsMatch(TextBox3.Text, Regex.Escape("^$\/()|?+[]{}><")) Then 
     Label1.Text = "Invalid input" 
    End If 

ОБНОВЛЕНО ОТВЕТ:

2 методы, чтобы проверить, если текст содержит любой из регулярных выражений метасимволы:

Метод 1: Использование Regex

Метасимволы должны быть помещены внутри класса символов [...]. Поэтому нужно избегать только некоторых символов, например: ^, \ и ].

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

Метод 2: Использование IndexOfAny функции Строка

Этот метод не использует Regex так, нет необходимости бежать.

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

Спасибо ajakblackgoat, вы знаете, почему мой Label1 не показывает «Invalid Input», когда я помещаю один из этих символов в Textbox3? – DDDD

+0

Это потому, что входной текст должен соответствовать точному шаблону регулярного выражения. Я отредактировал свой ответ выше, чтобы включить два метода для проверки. – ajakblackgoat

Смежные вопросы