网站地图 | 联系我们 | 咨询热线:0991-4811639
您现在的位置: 新疆二域设计网络公司 >> 网页设计学院 >> 网络编程 >> 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 = "\{([\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 = 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)还允许对字符串值进行四则运算。

 

作者:佚名 | 文章来源:作者: nhconch | 更新时间:2007-5-4 1:51:28

  • 上一篇文章:

  • 下一篇文章:
  • 相关文章:
    ASP实现网页打开任何类型文件都保存的方法
    伪静态页面在asp中实现的方法
    ASP安全:ASP防注入解决方法整理
    ASP入门教程:熟悉掌握ASP的语法和变量
    ASP+ACCESS+FLASH
    用ASP语言实现对SQL SERVER 数据库的操作…
    用asp管理sql server数据库…
    用Dreamweaver和ASP实现分页技术的参考
    在ASP中利用ADO显示Excel文件内容的函数
    在ASP中取得服务器网卡的MAC地址、DNS地址等网络信息

    色彩理念
    网页制作
    美工图形
    网络编程
    数 据 库
    网站运营
    ::最近更新::
    ·Utf-8和Gb2312乱码问题的终…
    ·ASP实现网页打开任何类型文…
    ·伪静态页面在asp中实现的方…
    ·ASP安全:ASP防注入解决方…
    ·UrlRewrite在ASP技术中的实…
    ·ASP入门教程:熟悉掌握ASP…
    ·ASP编程中FileUp 4.0 的属…
    ·防采集策略----网站生成静…
    ·实例详细讲解ASP生成静态H…
    ·ASP函数变量总结
    ·ASP实现邮件发送普通附件和…
    ·远程连接access数据库的方…
    ·在ASP中利用ADO显示Excel文…
    ·使用模板实现ASP代码与页面…
    ·购物车中数据的存放方式
    ::推荐阅读::
    ·远程连接access数据库的方…
    ·在ASP中取得服务器网卡的M…
    ·一条sql 语句搞定数据库分…
    ·一些不长见的ASP调用存储过…
    ·加速ASP程序的显示速度
    ·asp中对ip进行过滤限制函数

    关于我们 | 网站建设 | 服务帮助 | 联系我们 | 网页设计学院 | 实用工具 | 友情链接 | 新疆专题
    版权所有 © 2007 新疆二域设计网络公司 www.xjcncn.com All Rights Reserved
    网站建设总机:0991-4811639 传真:0991-4842803 ;咨询热线:13999201770. E-mail:xjcncn@gmail.com
    MSN :xjcncn@hotmail.com ; QQ:359312 ;地址:新疆乌鲁木齐市友好E时代公寓B座708 邮编:830000