Function code:
<%'***** ***************************************************
'Filter array duplicate function name: array_no(cxstr1,cxstr2,cxstr3)
'cxstr1: any string, automatically recognize
'cxstr2: the splitting symbol in cxstr1.
'cxstr3: Extract the string at a certain position in the result. If it is equal to 0, it will return all, if it is greater than the array subscript, it will return the last.
'Used for two-dimensional arrays
'****** *************************************************
function array_no(cxstr1,cxstr2,cxstr3)
if len(cxstr3) > 0 then
if not IsNumeric(cxstr3) then
array_no = "Sorry, the type of parameter 3 must be numeric"
Exit Function
end if
else
array_no = "Sorry, the type of parameter 3 must be a number"
Exit Function
end if
if isarray(cxstr1) then
array_no = "Sorry, parameter 1 cannot be an array"
Exit Function
end if
if cxstr1 = "" or isempty(cxstr1) then
array_no = "No data"
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%>
The following is the test code:
<%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 "When the string is a character:"&array_no(s1,",",0)&"
"
response.write "When the string is a number:"&array_no(s2,",",0)& "
"
response.write "When the string is empty: "&array_no(s3,",",0)&"
"
response.write "When the string is mixed: "&array_no(s4,",",0)&"
"
response.write "When the string is an array: "&array_no(s5,",",0)&"
"
response.write "When the string is an unknown variable:"&array_no(s33,",",0)&"
"
response.write "When extracting a certain bit, when the subscript is not exceeded: "&array_no(s1,",",2)&"
"
response.write "When extracting a certain bit, when the subscript is exceeded: "&array_no(s1,",",200)&"< ;br>"%>
Test results:
When the string is a character: abc,aa,bb,cdef,bc,abcdef,hhgg,gggg,cde,edc
When the string is a number: 1,2,3,11,22 ,33,12,13,14,333
When the string is empty: there is no data
When the string is mixed: sdf,abc,12,2
When the string is an array: Sorry, parameter 1 cannot be When the array
string is an unknown variable: there is no data
When extracting a certain bit, when the subscript is not exceeded: bb
When extracting a certain bit, when the subscript is exceeded: edc
Enhanced version of Script House: Solve common array errors
<%
'****************************************** ******************
'Filter array duplicate function name: array_no(cxstr1,cxstr2,cxstr3)
'cxstr1: Any string, automatically recognized
'cxstr2: Split symbol in cxstr1.
'cxstr3: Extract the string at a certain position in the result. If it is equal to 0, it will return all, if it is greater than the array subscript, it will return the last.
'Used for two-dimensional arrays
'****** *************************************************
function array_no(cxstr1,cxstr2,cxstr3)
if len(cxstr3) > 0 then
if not IsNumeric(cxstr3) then
array_no = "Sorry, the type of parameter 3 must be numeric"
Exit Function
end if
else
array_no = "Sorry, the type of parameter 3 must be a number"
Exit Function
end if
if isarray(cxstr1) then
array_no = "Sorry, parameter 1 cannot be an array"
Exit Function
end if
if cxstr1 = "" or isempty(cxstr1) then
array_no = "No data"
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 "When the string is a character:"&array_no(s1,",",0)&"
"
response.write "When the string is a number:"&array_no (s2,",",0)&"
"
response.write "When the string is empty:"&array_no(s3,",",0)&"
"
response.write "When the string is a mixed string:"&array_no(s4,",",0)&"
"
response.write "When the string is an array:"&array_no(s5,",", 0)&"
"
response.write "When the string is an unknown variable:"&array_no(s33,",",0)&"
"
response.write "Extract a certain When one digit is extracted, the subscript is not exceeded: "&array_no(s1,",",2)&"
"
response.write "When a certain digit is extracted, the subscript is exceeded: "&array_no(s1 ,",",200)&"
"
%>
Mainly adding judgment
do while instr(cxstr1,",,")>0
cxstr1=replace(cxstr1,",,", ",")
loop
if right(cxstr1,1)="," then
cxstr1=left(cxstr1,len(cxstr1)-1)
end if