求ASP字符串截取函数代码

函数要求:根据标签截取字符串function函数名(原始字符串,开始字符,结尾字符)获取开始字符出现位置A获取结尾字符出现位置B判断A和B之间嵌套开始字符的出现次数C,C... 函数要求:根据标签截取字符串
function 函数名(原始字符串,开始字符,结尾字符)
获取开始字符出现位置A
获取结尾字符出现位置B
判断A和B之间嵌套开始字符的出现次数C,C=0为不嵌套
获取结尾字符第C+1次出现的位置D
截取A和D之间的字符串输出
end function
目前我不知道如何获取字符出现的次数和获取某字符第N次出现的位置
展开
 我来答
blacklong
2014-01-15 · TA获得超过1501个赞
知道大有可为答主
回答量:2745
采纳率:0%
帮助的人:1251万
展开全部
<script language="vbscript">

str = "111<a>222<b><a>ss</a><a>ss</a>333<a>xx<a>ss</a>..</a>yy</b><a>ss</a>444</a>555"
msgbox xx(str,"<a>","</a>")

function xx(str,beginStr,endStr)

dim pos,c1,c2,d1,d2
pos = instr(str,beginStr) '<a>的位置
c1=1 '<a>的个数
c2=0 '</a>的个数
do while c1<>c2
d1 = instr(pos+1,str,beginStr) '下个<a>的位置
d2 = instr(pos+1,str,endStr) '下个</a>的位置
if d1=0 and d2=0 then
'开始,结束,都没找到,说明个数不匹配
xx = ""
exit function
elseif d1>0 and d2=0 then
'说明下个是<a>
c1 = c1+1
pos = d1
elseif d1=0 and d2>0 then
'说明下个是</a>
c2 = c2 +1
pos = d2
elseif d1<d2 then
'说明下个是<a>
c1 = c1+1
pos = d1
else 'd2<d1
'说明下个是</a>
c2 = c2 +1
pos = d2
end if
loop
xx = mid(str,instr(str,beginStr),d2+len(endStr)-instr(str,beginStr))
end function
</script>
百度网友400e85f
2014-01-15 · 超过19用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:36.4万
展开全部
截取很简单,mid(str,开始位置,截取字符长度)
instr(str,首次出现的字符)
instrrev(str,最后出现的字符)
但是你下面的要求就有点麻烦了。也不是做不到,代码估计有点长
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式