尝试使用regex vbscript清理用户输入

尝试使用regex vbscript清理用户输入,vbscript,Vbscript,我正在尝试比较从调用我的login.asp验证页面的login_form.asp存储的输入(用户名和密码)。除了正则表达式的条件外,我的代码还在工作。当我在继续之前添加if语句来比较条件时,页面崩溃。我只希望在尝试连接之前允许a-z0-9输入。如果我注释掉if条件,则表单验证有效,但正则表达式无效。这是ASP的经典之作。谢谢你的帮助 以下是我正在使用的代码: dim userName, password, query dim conn, rs Dim reg Set reg = new RegE

我正在尝试比较从调用我的login.asp验证页面的login_form.asp存储的输入(用户名和密码)。除了正则表达式的条件外,我的代码还在工作。当我在继续之前添加if语句来比较条件时,页面崩溃。我只希望在尝试连接之前允许a-z0-9输入。如果我注释掉if条件,则表单验证有效,但正则表达式无效。这是ASP的经典之作。谢谢你的帮助

以下是我正在使用的代码:

dim userName, password, query
dim conn, rs
Dim reg
Set reg = new RegExp
reg.Pattern = "[a-z0-9] + @[a-z0-9\.] +"

userName = Request.Form("userName")
password = Request.Form("password")

response.write userName & "<P>"

if reg.Test("userName") then
response.write "regex userName = true"
endif

if reg.Test("password") then
response.write "regex password = true"
endif

set conn = server.createObject("ADODB.Connection")
set rs = server.createObject("ADODB.Recordset")

query = "select UserName from users where userName='" & userName & "'   
and     userPass='" & password & "'"
response.write query & "<P>"
dim用户名、密码、查询
迪姆康恩酒店
Dim reg
Set reg=new RegExp
注册模式=“[a-z0-9]+@[a-z0-9\.]”
userName=Request.Form(“用户名”)
密码=请求。表单(“密码”)
response.write用户名&“

” 如果注册测试(“用户名”),则 response.write“regex userName=true” 恩迪夫 如果注册测试(“密码”),则 response.write“regex password=true” 恩迪夫 set conn=server.createObject(“ADODB.Connection”) set rs=server.createObject(“ADODB.Recordset”) query=“从用户名=”的用户中选择用户名”&用户名&” 和userPass='“&password&'” response.write查询&“

试试看

regext.test(用户名)

而不是

regex.test(“用户名”)

第二个将字符串文字“username”而不是变量运行到regex.test()中

你的正则表达式模式看起来也很奇怪

regexlib.com有一个可搜索的正则表达式选择

最后,您可能会重新考虑执行数据库查询的方法。您的操作方式可能会受到sql注入攻击。使用ado的参数对象