关于模板替换的问题(Replace)

anwell 2006-08-21 05:15:51
清风(专业提供域名空间邮箱) 说:
Replace(tmpStr,"{%TopNews(2,8)%}",TopNews(2,8))
我生成静态页面,这句话可以执行
可以单独替换{%为何就执行不了了
replace(replace(tmpStr,"{%",""),"%}","")
这样就执行不了了?
可以替换,函数却执行不了,
TopNews(2,8)

这个方法返回的事什么??
提示什么错误?
调的一个新闻列表
前者可以显示新闻信息

后者直接显示 TopNews(2,8)
不执行
模板里面是 {%TopNews(2,8)%}
...全文
237 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
anwell 2006-08-21
  • 打赏
  • 举报
回复
哈哈,多谢小天,感谢小天,

我少加了一个 Eval()




newskyline 2006-08-21
  • 打赏
  • 举报
回复
纳闷儿了,我才不久写了个模板程序,没发现哪儿有问题呀,你的怎么就不能执行了呢?
给你看段我改进的带参数标签替换核心代码:

Private Sub Replace_SystemTag()
Dim obj_RegExp,obj_Matches,obj_Match
Dim str_ReplaceStr
Dim aFunc

Set obj_RegExp = New RegExp
With obj_RegExp
.IgnoreCase = True
.Global = True
.Pattern = "{\$(.*)\((.*)\)\$}"
Set obj_Matches = .Execute(str_PageContent)
For Each obj_Match In obj_Matches
For Each aFunc In arr_Func
If aFunc(0) = obj_Match.SubMatches(0) Then
str_ReplaceStr = Eval(aFunc(1) & "(" & obj_Match.SubMatches(1) & ")")
str_PageContent = Replace(str_PageContent,obj_Match.Value,str_ReplaceStr)
End If
Next
Next
End With

Set obj_Match = Nothing
Set obj_RegExp = Nothing
Set obj_Matches = Nothing
Set str_ReplaceStr = Nothing
End Sub

'调用方法:

Function GetPlus(a,b)
GetPlus = a & " 加 " & b & " 的结果是 " & (a + b)
End Function

arrFunc = Array(Array("PLUS","GetPlus"))

Set objTemp = New Cls_Template
...
objTemp.FuncArray = arrFunc
...


标签形式:
{$PLUG(3,5)$}
----------------
替换结果:
3 加 5 的结果是 8
anwell 2006-08-21
  • 打赏
  • 举报
回复
newskyline(小天) ( )

用正则一样的,都是不能执行,只是代码过长,我简化为 ; Replace(Replace(tmpStr,"{%",""),"%}","")


littlelam(竹子岌)(http://www.toaspx.com) ( )

DIM一下是可以的,问题是我里面的标签太多了

{%TopNews(0,8)%}

{%TopNews(1,8)%}


{%TopNews(2,8)%}
littlelam 2006-08-21
  • 打赏
  • 举报
回复
莫非你想要这样的?
Replace(tmpStr,"{%"&TopNews(0,8)&"%}",TopNews(0,8))
?
littlelam 2006-08-21
  • 打赏
  • 举报
回复
呵呵,写多一句吧
Dim A
A=TopNews(0,8)
Replace(tmpStr,"{%TopNews(0,8)%}",A)
newskyline 2006-08-21
  • 打赏
  • 举报
回复
如果是带参数的标签,推荐使用正则表达式。
如果不了解正则表达式,推荐参考VBScript 5.5 中文参考手册。
如果不知道在哪儿下载,可以去Baidu一下。
解答完毕
anwell 2006-08-21
  • 打赏
  • 举报
回复
人呢
anwell 2006-08-21
  • 打赏
  • 举报
回复
替换是替换了,就是执行不了

Replace(tmpStr,"{%TopNews(0,8)%}",TopNews(0,8))

这句可以执行

Replace(Replace(tmpStr,"{%",""),"%}","")

这句不能执行,而是把函数名直接显示出来了 TopNews(0,8)
街头小贩 2006-08-21
  • 打赏
  • 举报
回复
没看明白!Replace(内容,标记,替换后的内容)

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧