Function code:
Copy Code code as follows:
<% ' *******************************************************
' Filter array duplicate function name: Array_no (CXSTR1,CXSTR2,CXSTR3)
' CXSTR1: arbitrary string, automatic recognition
' Cxstr2:cxstr1 the split symbol.
' CXSTR3: Extracts a position string in the result, equal to 0 o'clock return to all, is greater than the array subscript when the last return.
' Make use of two-dimensional arrays
'*******************************************************
function Array_no (CXSTR1,CXSTR2,CXSTR3)
If Len (CXSTR3) > 0 Then
If not IsNumeric (CXSTR3) Then
Array_no = "Sorry, parameter 3 type must be number"
Exit Function
End If
Else
Array_no = "Sorry, parameter 3 type must be 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%>
Here is the test code:
Copy Code code as follows:
<%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 "String for character characters:" &array_no (S1, ",", 0) & "<br>"
Response.Write "String is a number:" &array_no (S2, ",", 0) & "<br>"
Response.Write "String is empty:" &array_no (S3, ",", 0) & "<br>"
Response.Write "String is mixed:" &array_no (S4, ",", 0) & "<br>"
Response.Write "String is an array:" &array_no (S5, ",", 0) & "<br>"
Response.Write "String is an unknown variable:" &array_no (S33, ",", 0) & "<br>"
Response.Write "Extract a certain when not exceeding the subscript:" &array_no (S1, ",", 2) & "<br>"
Response.Write "Extracts a certain time, when exceeding subscript:" &array_no (S1, ",",) & "<br>"%>
Test results:
Copy Code code as follows:
string as word characters: Abc,aa,bb,cdef,bc,abcdef,hhgg,gggg,cde,edc
When a string is a number: 1,2,3,11,22,33,12,13,14,333
When string is empty: no data
When a string is mixed: sdf,abc,12,2
When a string is an array: Sorry, parameter 1 cannot be an array
String is an unknown variable: no data
When one is extracted, no more than the subscript: BB
When one is fetched, when the subscript is exceeded: EDC
cloud-dwelling community enhanced version:Fixed an array of common errors
Copy Code code as follows:
<%
'*******************************************************
' Filter array duplicate function name: Array_no (CXSTR1,CXSTR2,CXSTR3)
' CXSTR1: arbitrary string, automatic recognition
' Cxstr2:cxstr1 the split symbol.
' CXSTR3: Extracts a position string in the result, equal to 0 o'clock return to all, is greater than the array subscript when the last return.
' Make use of two-dimensional arrays
'*******************************************************
function Array_no (CXSTR1,CXSTR2,CXSTR3)
If Len (CXSTR3) > 0 Then
If not IsNumeric (CXSTR3) Then
Array_no = "Sorry, parameter 3 type must be number"
Exit Function
End If
Else
Array_no = "Sorry, parameter 3 type must be 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 "String for character characters:" &array_no (S1, ",", 0) & "<br>"
Response.Write "String is a number:" &array_no (S2, ",", 0) & "<br>"
Response.Write "String is empty:" &array_no (S3, ",", 0) & "<br>"
Response.Write "String is mixed:" &array_no (S4, ",", 0) & "<br>"
Response.Write "String is an array:" &array_no (S5, ",", 0) & "<br>"
Response.Write "String is an unknown variable:" &array_no (S33, ",", 0) & "<br>"
Response.Write "Extract a certain when not exceeding the subscript:" &array_no (S1, ",", 2) & "<br>"
Response.Write "Extracts a certain time when exceeding subscript:" &array_no (S1, ",") & "<br>"
%>
The main is to increase the judgment
Copy Code code as follows:
Do While InStr (Cxstr1, ",,") >0
Cxstr1=replace (Cxstr1, ",,", ",")
Loop
If Right (cxstr1,1) = "," Then
Cxstr1=left (Cxstr1,len (CXSTR1)-1)
End If