zoukankan      html  css  js  c++  java
  • 带参数标签的取值方法

    方法一:

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>新建网页 1</title>
    </head>
    <body>
    <%
    content="<h1>这里显示的是有参数的标签啊!</h1>第一个标签,两个参数选择显示类型和显示条数<br />$shownews(2,15)$第二个标签,一个参数来判断拆分的有效性,$show2(5)$<br />第三个标签,无参数$nolable()$"
    '这是我习惯用的变量名,从模板读取的内容变量.
    call replacelable(content,"$shownews")
    call replacelable(content,"$show2")
    call replacelable(content,"$nolable")
    '这里调用处理标签的程序,可以适用不同的标签,注意写法!
    response.write content
    '显示处理过的内容

    sub replacelable(c,l)
    '这个sub说过用途了!
    tmp2=1
    while instr(tmp2,c,l)>0
    '一开始没想明白这个循环的作用,后来想想要看是否有多个标签,比较深刻
    tmp1=instr(tmp2,c,l)'标签第一位
    tmp2=instr(tmp1+1,c,"$")'标签结束.
    tmpstr=mid(c,tmp1,tmp2-tmp1)'标签除}部分.
    tmpstr=replace(tmpstr,l,"")'去除$shownews,即剩下参数(2,15)
    tmpstr=replace(tmpstr,"(","")
    tmpstr=replace(tmpstr,")","")'只剩下2,15
    canshu=split(tmpstr,",")
    '这里将参数拆分,不管多少个,要在下面的select中分别处理,看来还要试一下无参数和一个参数的才能稳定
    '测试结果,对于没有参数的标签要加()才行,使用时注意就可以了
    select case l
            case "$shownews"
            c=replace(c,l&"("&tmpstr&")$",author(canshu(0),canshu(1)))
            case "$show2"
            c=replace(c,l&"("&tmpstr&")$",show2(canshu(0)))
            case "$nolable"
            c=replace(c,l&"("&tmpstr&")$",nolable())
    end select
    wend
    end sub
    function author(cc,ll)
    author="格式为:"&cc
    author=author&"<ul>"
    for x=1 to ll
    author=author&"<li>"
    author=author&"dssdfsdfsdfss"
    author=author&"</li>"
    next
    author=author&"</ul>"
    end function
    function show2(ccc)
    show2="接收到参数:"&ccc
    end function
    function nolable()
    nolable="这个没有参数,显示正常"
    end function
    %>

    <br>
    </body>

    方法二:

    <%
    '标签组成类型
    dim aa
    aa="{$blog:name;aa=3,bb=2,cc=3,dd=4,eee=true}"
    Response.write TagsArr(aa,4)

    '================================
    '分解完数组产生输入函数的字符串 2
    '例如:Key1=2,Key1=3
    '================================
    Function TagsValue(Byval Value)
       Dim str_TagsName,str_TagsValue
           '标签名称:目前无用,可以在需要的时候调用
           'str_TagsName = Split(Replace(Replace(Value,"{$blog:",""),"}",""),";")(0)
           str_TagsValue = Split(Replace(Replace(Value,"{$blog:",""),"}",""),";")(1)
           TagsValue = str_TagsValue
    End Function

    '================================
    '裸值输入定义数组。1
    '说明:分解完标签获得输入值以后,取值长度不能超过TagsLen的最大数字
    '可以直接使用,直接输入完整标签无需分解
    '0为第一参数值,1为第二参数值,以此类推
    '================================
    Function TagsArr(TagsStr,Value)
        TagsArr = Split(Split(TagsValue(TagsStr),",")(Value),"=")(1)
    End Function

    '================================
    '函数说明:确定输入参数长度,返回布尔值
    '参数:直接输入完整标签
    '================================
    Function TagsLen(StrValue,Value)
        If Ubound(Split(TagsValue(StrValue),",")) <> Value Then
       TagsLen = False
        Else
       TagsLen = True
        End If
    End Function
    %>
    </html>

    方法三 正则表达式

    <%
    '//函数:带参数的标签获取者
    '//参数:DiyLable:标签,Template:包含标签的内容,Content:变量内容
    Function ReplaceTestDiy(DiyLable,Template,Content)
    ReplaceTestDiy=Template
    Dim regEx,Match,myMatches
    Set regEx=New RegExp
       regEx.Pattern = DiyLable
       regEx.IgnoreCase = True
       regEx.Global = True
    Set myMatches=regEx.Execute(Template)
    If myMatches.Count<=0 Then Exit function
    For Each Match In myMatches
       DiyLable=Replace(ReplaceTestDiy,"{$Title2:" & Match.SubMatches.item(0) & "$}",Left(Content,Match.SubMatches.item(0)))
    Next
       ReplaceTestDiy=DiyLable
    End Function


    Template="asfsadf{$Title2:5$}asfdsdf"
    Asp_Lable="{\$Title2:(\d+)\$}"   '标题
    Template = ReplaceTestDiy(Asp_Lable,Template,"汇聚心理学界力量 重建心灵家园")
    Response.write Template
    %>

  • 相关阅读:
    百分点零售行业大数据解决方案
    百分点用户标签管理系统
    百分点个性化系统解决方案
    百分点数据洞察系统解决方案
    来学学数据分析吧(二)第一章 预测和关联数量特征
    来学学数据分析吧(一)
    生产者和消费者问题学习以及Java实现
    java中的双重锁定检查(Double Check Lock)
    python学习(十四)面向对象
    python学习(十二)模块
  • 原文地址:https://www.cnblogs.com/yeye518/p/2231714.html
Copyright © 2011-2022 走看看