快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

ASP中轻松实现变量名-值变换

  用过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 = "{([ws]+)}" \\\'除换行符外的所有字符有效
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 = Replace(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

调用方式:
Var2Value("update users set password=\\\'{password}\\\', group={group}, name=\\\'{username}\\\' where account=\\\'{account}\\\'"
  Var2Value调用了Txt2Value,Txt2Value找出所有变量名交调用GetVar得到变量值并进行替换。实际上直接调用Txt2Value(str,1)还答应对字符串值进行四则运算。
返回类别: 教程
上一教程: MSGBOX函数语言参考
下一教程: ACCESS2000数据库80万记录通用迅速分页类

您可以阅读与"ASP中轻松实现变量名-值变换"相关的教程:
· ASP中轻松实现记录集分页
· 在ASP中轻松实现记录集分页显示
· ASP环境下轻松实现报表的打印
· 轻松实现将上传图片到数据库
· asp实现在web中显示电子表格数据(一)显示数据表格的应用
    微笑服务 优质保证 索取样品