2016-04-26 2 views
2

Мой белый список повторно проверяет параметры запроса. Когда я прохожу параметр <img>, это не поймать < или >Почему мой белый список не ловят скобки?

<% 
Function FoundSpecialChar(strInput) 
    On Error Resume Next 
    Dim objRegExp 
    Set objRegExp = New Regexp 
    objRegExp.IgnoreCase = True 
    objRegExp.Global = True 

    objRegExp.Pattern= "^[^-A-Za-z0-9 ]+$" 

    if objRegExp.Test(strInput) then 
     FoundSpecialChar= true 
     exit function 
    end if 

    FoundSpecialChar= false 

    Set objRegExp = Nothing 
End Function 
%> 
+0

Это vbscript, не так ли? Если это, пожалуйста, пометьте его как таковой. –

+1

Надеюсь, вы не используете регулярное выражение, где вы должны использовать парсер. Сказав это: попробуйте шаблон регулярного выражения '[A-Za-z0-9 \ <\>]' У меня нет Microsoft для тестирования этого. – Paulb

+0

Мы не используем парсер для классического asp. Должны ли мы? – runners3431

ответ

3

Ваше регулярное выражение говорит:

^    # Starting at the beginning of the line, 
[^-A-Za-z0-9 ] # look for anything OTHER than dashes, letters, numbers, or space 
+    # one or more times 
$    # until the end of the line 

он будет возвращать только справедливо, если именно это произойдет. Он будет соответствовать:

^@#$ 
! 
<> 

и другие подобные ему.

Как только у вас есть буквы, цифры, пробелы или тире в любой точке строки, регулярное выражение вернет false.

Если вы ищете присутствие этих специальных символов в любом месте строки, вам, вероятно, необходимо удалить символы^и $.

+0

Спасибо. Казалось, это сработало. – runners3431

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