ASP 过滤数组重复数据函数(加强版)_Javascript教程-查字典教程网
ASP 过滤数组重复数据函数(加强版)
ASP 过滤数组重复数据函数(加强版)
发布时间:2016-12-30 来源:查字典编辑
摘要:函数代码:复制代码代码如下:0thenifnotIsNumeric(cxstr3)thenarray_no="对不起,参数3类型必需为数字"...

函数代码:

复制代码 代码如下:

<%'*******************************************************

'过滤数组重复函数名称:array_no(cxstr1,cxstr2,cxstr3)

'cxstr1:任意的字符串,自动识别

'cxstr2:cxstr1中分割符号。

'cxstr3:提取结果中的某一位置字串,等于0时返回为全部,大于数组下标时返回最后.

'使用于二维数组

'*******************************************************

function array_no(cxstr1,cxstr2,cxstr3)

if len(cxstr3) > 0 then

if not IsNumeric(cxstr3) then

array_no = "对不起,参数3类型必需为数字"

Exit Function

end if

else

array_no = "对不起,参数3类型必需为数字"

Exit Function

end if

if isarray(cxstr1) then

array_no = "对不起,参数1不能为数组"

Exit Function

end if

if cxstr1 = "" or isempty(cxstr1) then

array_no = "没有数据"

Exit Function

end if

ss = split(cxstr1,cxstr2)

cxs=cxstr2&ss(0)&cxstr2

sss=cxs

for m = 0 to ubound(ss)

cc = cxstr2&ss(m)&cxstr2

if instr(sss,cc)=0 then

sss = sss&ss(m)&cxstr2

end if

next

array_no = right(sss,len(sss)-len(cxstr2))

array_no = left(array_no,len(array_no)-len(cxstr2))

if cxstr3 <> 0 then

cx_sp = split(array_no,cxstr2)

if cxstr3 > ubound(cx_sp) then

array_no = cx_sp(ubound(cx_sp))

else

array_no = cx_sp(cxstr3)

end if

end if

end function%>

下面是测试代码:

复制代码 代码如下:

<%s1 = "abc,aa,bb,cdef,bc,abcdef,hhgg,gggg,cde,edc"

s2 = "1,2,3,11,22,33,12,13,14,11,33,333,14"

s3 = ""

s4 = "sdf,abc,12,2,2,abc"

s5 = split(s4)

response.write "字串为字符时:"&array_no(s1,",",0)&"<br>"

response.write "字串为数字时:"&array_no(s2,",",0)&"<br>"

response.write "字串为空时:"&array_no(s3,",",0)&"<br>"

response.write "字串为混合时:"&array_no(s4,",",0)&"<br>"

response.write "字串为数组时:"&array_no(s5,",",0)&"<br>"

response.write "字串为未知变量时:"&array_no(s33,",",0)&"<br>"

response.write "提取某一位时,没有超过下标时:"&array_no(s1,",",2)&"<br>"

response.write "提取某一位时,超过下标时:"&array_no(s1,",",200)&"<br>"%>

测试结果:

复制代码 代码如下:

字串为字符时:abc,aa,bb,cdef,bc,abcdef,hhgg,gggg,cde,edc

字串为数字时:1,2,3,11,22,33,12,13,14,333

字串为空时:没有数据

字串为混合时:sdf,abc,12,2

字串为数组时:对不起,参数1不能为数组

字串为未知变量时:没有数据

提取某一位时,没有超过下标时:bb

提取某一位时,超过下标时:edc

查字典教程网增强版本: 解决了数组常见错误

复制代码 代码如下:

<%

'*******************************************************

'过滤数组重复函数名称:array_no(cxstr1,cxstr2,cxstr3)

'cxstr1:任意的字符串,自动识别

'cxstr2:cxstr1中分割符号。

'cxstr3:提取结果中的某一位置字串,等于0时返回为全部,大于数组下标时返回最后.

'使用于二维数组

'*******************************************************

function array_no(cxstr1,cxstr2,cxstr3)

if len(cxstr3) > 0 then

if not IsNumeric(cxstr3) then

array_no = "对不起,参数3类型必需为数字"

Exit Function

end if

else

array_no = "对不起,参数3类型必需为数字"

Exit Function

end if

if isarray(cxstr1) then

array_no = "对不起,参数1不能为数组"

Exit Function

end if

if cxstr1 = "" or isempty(cxstr1) then

array_no = "没有数据"

Exit Function

end if

do while instr(cxstr1,",,")>0

cxstr1=replace(cxstr1,",,",",")

loop

if right(cxstr1,1)="," then

cxstr1=left(cxstr1,len(cxstr1)-1)

end if

ss = split(cxstr1,cxstr2)

cxs=cxstr2&ss(0)&cxstr2

sss=cxs

for m = 0 to ubound(ss)

cc = cxstr2&ss(m)&cxstr2

if instr(sss,cc)=0 then

sss = sss&ss(m)&cxstr2

end if

next

array_no = right(sss,len(sss)-len(cxstr2))

array_no = left(array_no,len(array_no)-len(cxstr2))

if cxstr3 <> 0 then

cx_sp = split(array_no,cxstr2)

if cxstr3 > ubound(cx_sp) then

array_no = cx_sp(ubound(cx_sp))

else

array_no = cx_sp(cxstr3)

end if

end if

end function

s1 = "abc,aa,bb,cdef,bc,abcdef,hhgg,gggg,cde,edc,333,,,,,333,7,,,,"

s2 = "1,2,3,11,22,33,12,13,14,11,33,333,14,333,,,,,333,7,,,,"

s3 = ""

s4 = "sdf,abc,12,2,2,abc,333,,,,,333,7,,,,"

s5 = split(s4)

response.write "字串为字符时:"&array_no(s1,",",0)&"<br>"

response.write "字串为数字时:"&array_no(s2,",",0)&"<br>"

response.write "字串为空时:"&array_no(s3,",",0)&"<br>"

response.write "字串为混合时:"&array_no(s4,",",0)&"<br>"

response.write "字串为数组时:"&array_no(s5,",",0)&"<br>"

response.write "字串为未知变量时:"&array_no(s33,",",0)&"<br>"

response.write "提取某一位时,没有超过下标时:"&array_no(s1,",",2)&"<br>"

response.write "提取某一位时,超过下标时:"&array_no(s1,",",200)&"<br>"

%>

主要是增加了判断

复制代码 代码如下:

do while instr(cxstr1,",,")>0

cxstr1=replace(cxstr1,",,",",")

loop

if right(cxstr1,1)="," then

cxstr1=left(cxstr1,len(cxstr1)-1)

end if

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类