'处理$(***, ***, ...)格式的函数标签
Set reg = New RegExp
reg.Global = True
reg.Pattern = "\$\(([^\)]+)\)"
Set arr = reg.Execute(strData)
For Each ptr In arr
strData = Replace(strData, ptr.Value, ASPCommand(ptr.SubMatches(0)))
Next
Set arr = Nothing
Set reg = Nothing
'输出解析后的模版
Response.Write strData
'将$(***, ***, ...)函数标签的$()包含的内容用Execute执行
Function ASPCommand(ByVal strData)
Dim arr1, arr2
Dim i
arr1 = Split(strData, ", ")
ReDim arr2(UBound(arr1) - 1)
For i = 1 To UBound(arr1)
arr2(i - 1) = "arr1(" & i & ")"
Next
'这里输出函数作调试用
'Response.Write "ASPCommand = " & arr1(0) & "(" & Join(arr2, ", ") & ")"
'这里执行函数
Execute "ASPCommand = " & arr1(0) & "(" & Join(arr2, ",") & ")"
End Function
'这个对应模版中的$(Test, 1, 2)函数标签
Function Test(a, b)
Test = a & " + " & b & " = " & (CInt(a) + CInt(b))
End Function
%>