欢迎光临
我们一直在努力

ASP中轻松实现变量名-值变换-ASP教程,ASP应用

建站超值云服务器,限时71元/月

用过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)还允许对字符串值进行四则运算。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP中轻松实现变量名-值变换-ASP教程,ASP应用
分享到: 更多 (0)

相关推荐

  • 暂无文章