标题: ASP编程:ASP中轻松完成变量名-值变换 [打印本页] 作者: 兰色精灵 时间: 2015-2-3 23:41 标题: ASP编程:ASP中轻松完成变量名-值变换 因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制。变量 用过PHP的伴侣都晓得,PHP中变量的利用天真便利,出格是能在字符串中便利完成变量名-值变换,使得全部PHP代码更显简约幽美。好比一条更新数据库的SQL语句只需写成:"update users set password='$password', group=$group, name='$username' where account='$account'",个中的$password、$group、$username、$account便会被实践的变量值交换,而在ASP中要完成不异的功效必需写成:"update useres set password='" & password & "',group=" & group & ",name='" & username & "' where account='" & account & "'",显得冗杂好看。假如这是一条insert言语并且拔出的字段内容良多的话,那末检查字段与values的对应关系将会是一个疾苦的进程。
如今让咱们看看若何在ASP完成相似的变量名-值变换。
思绪
起首,必需有一个办法把需求用实践值交换的变量名与通俗的文本辨别出来;然后,把一切找到的变量名用它所代表的实践值交换失落。
关于第一点可以经由过程正则表达式查找失掉,这里咱们不采取PHP的变量暗示体例,而采取大托号{}作为变量名的界限符,字符串暗示变成password='{password}',group={group}。
第二点是变量名-值变换的关头,经由过程变量名失掉变量值。检查ASP材料没有找到直接完成的办法,但有一个函数Execute引发咱们的注重,从材料申明中可知Execute可以履行传入的无效的字符串作为代码履行同,如许只需编写一个小函数就能够完成咱们的要示。中心代码为:
function GetVar(var_name)
Execute("function get_value(): get_value=" & var_name & ": end function")
getvar=get_value()
end function
完成
完全代码:
function GetVar(var_name)
Execute("function get_value(): get_value=" & var_name & ": end function")
getvar=get_value()
end function
function Txt2Value(str, level)
dim regEx, Matches, Result
Set regEx = new RegExp
select case level
case 0 regEx.Pattern = "\{(\w+)\}" '变量名无效
case 1 regEx.Pattern = "\{([\w+\-\*/\\<>=]+)\}" '变量名及运算符无效
'case 2 regEx.Pattern = "\{([\w\s]+)\}" '除换行符外的一切字符无效
case else exit function
end select
'regEx.Pattern = "\{(\w+)\}"
regEx.IgnoreCase = true
regEx.Global = true
Set Matches = regEx.Execute(str)
Result = str
'response.write Matches.Count
For Each Match In Matches
Result = WordStr(Result, Match.Value, GetVar(Match.SubMatches(0)))
Next
set Matches = nothing
set regEx = nothing
Txt2Value = Result
end function
function Var2Value(var_name)
Var2Value = Txt2Value(var_name, 0)
end Function