我的正则表达式白名单正在测试查询参数。当我传递<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 :(得分: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
如果发生这种情况,它只会返回true。所以它会匹配:
^@#$
!
<>
和其他人喜欢它。
只要你在任何地方有任何字母,数字,空格或短划线,正则表达式就会返回false。
如果您要在字符串中的任何位置查找这些特殊字符的存在,则可能需要删除^和$字符。